我有一个需要一些输入的表单,一切都是桃子的。从这个表单我想要一个输入值,并通过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()或其他东西,并将其与unbind一起保留,则没有任何反应。有点难过。
答案 0 :(得分:3)
你不应该需要这些。如果要在表单提交之前设置该值,可以这样轻松地完成:
jQuery(function() {
jQuery('#rsvp-form').submit(function(e) {
var emailvalue = jQuery('#personemail\\[0\\]').val();
jQuery('#person_email').val(emailvalue);
});
});
答案 1 :(得分:3)
您需要调用本机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
});