我有一个接受一些输入的表单,那里的一切都是桃色的。 从这个表单中,我想通过jquery获取一个输入值并将其分配给隐藏值。 为此,我写了以下内容:
<script type="text/javascript">
jQuery(document).ready(function() {
function preventDefault(e){
e.preventDefault();
}
jQuery('#rsvp-form').bind('submit', preventDefault);
jQuery('#rsvp-form').submit(function(e) {
var emailvalue = jQuery('#personemail\[0\]').val();
jQuery('#person_email').val(emailvalue);
alert(jQuery("#person_email").val());
jQuery('#rsvp-form').unbind('submit', preventDefault);
jQuery(this).trigger('submit');
});
});
</script>
我将 .preventDefault 绑定到提交,同时毫无问题地更改我的值。 问题是在更改值后提交表单。 无论我尝试过什么,它都会以无限循环结束。 如果我删除触发器或 .submit() 或类似的东西,只是将其保留为取消绑定,则没有任何反应。 在这一点上有点难倒。
你不应该需要任何这些。如果要在表单提交之前设置该值,可以像这样轻松设置:
jQuery(function() {
jQuery('#rsvp-form').submit(function(e) {
var emailvalue = jQuery('#personemail\[0\]').val();
jQuery('#person_email').val(emailvalue);
});
});
你需要调用本机submit
方法,而不是触发jQuery事件。
jQuery('#rsvp-form').submit(function(e) {
var emailvalue = jQuery('#personemail\[0\]').val();
jQuery('#person_email').val(emailvalue);
alert(jQuery("#person_email").val());
jQuery('#rsvp-form').unbind('submit', preventDefault);
this.submit(); // <-- this line here
});