jquery - 使用 jquery 提交表单时的 PreventDefault 递归问题

标签 jquery forms submit preventdefault

我有一个需要一些输入的表单,里面的一切都很完美。我想从这个表单中获取一个输入值并通过 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 绑定(bind)到提交,并且毫无问题地更改我的值。问题是在更改值后提交表单。无论我尝试什么,它都会以无限循环结束。如果我删除触发器或 .submit() 或类似的东西,然后将其保留为取消绑定(bind),则不会发生任何情况。此刻有点难住了。

最佳答案

你不应该需要这些。如果您想在表单提交之前设置该值,您可以像这样轻松完成:

jQuery(function() {
    jQuery('#rsvp-form').submit(function(e) {
        var emailvalue = jQuery('#personemail\\[0\\]').val();
        jQuery('#person_email').val(emailvalue);
    });
});

关于jquery - 使用 jquery 提交表单时的 PreventDefault 递归问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5939782/

相关文章:

当开关关闭时,Javascript 暂停声音不起作用

javascript - 将输入文件传递给后台脚本

javascript - 如何在 jquery POST 中将 enctype 作为 multipart/form-data 发送

javascript - 动态填充的表单数据未发布

javascript - 错误 : [$rootScope:inprog] $digest already in progress

jquery - 如何确定 jQuery ajax $.post 请求不成功的原因?

javascript - HTML 复选框 : Change Color

javascript - ASP.NET MVC 提交表单调用另一个提交表单的 javascript 函数

css - Bootstrap 表单 - 为什么我的提交按钮挤满了我的输入?

forms - 提交表格(发送带有数据的电子邮件)并重定向到 Paypal 页面