jQuery Ajax表单只会绑定一次提交

时间:2014-04-17 13:02:08

标签: jquery ajax forms

我有两个问题。如果我直接加载我的页面,我的表单只会提交一次。如果我在一个模态中加载表单,它将不会提交。

成功后我想重新显示表单(通过ajax加载)并且仍然将脚本重新绑定到表单。

HTML / jQuery 已编辑

 <div class="modal-content">
      <form id="userSignUp">{{FORM ELEMENTS}}
      <input type="submit" onclick="submitForm('#userSignUp',event)">
  </form>
 </div>
 <script>
 function submitForm(formID,e){
        //e.preventDefault(); //STOP default action 
        var postData = $("#"+formID).serializeArray();
        var formURL = $("#"+formID).attr("action");
        alert(formID);
        $.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            cache: false,
            success:function(data, textStatus, jqXHR) 
            { 
                $('.modal-content').html(data);
            },
            error: function(jqXHR, textStatus, errorThrown) 
            { 
                $('.signUpError').html('<div class="alert alert-warning">There was a problem communicating with the site. Refresh the page and try again.</div>');
            }
        });

        e.preventDefault(); //STOP default action 
    }
 </script>

编辑我已经更新了我的脚本 - 但现在问题似乎是每次表单提交时,它都希望使用第一种形式提交的数据。它似乎没有对udpated数据进行重新定位。

2 个答案:

答案 0 :(得分:0)

你的表单是动态元素,对动态元素使用绑定:

而不是

$("#userSignUp").submit(function(){});

使用

$(document).on('submit', "#userSignUp"), function(){};

答案 1 :(得分:0)

我会这样做:

  <form id="userSignUp">

    <div class="modal-content">
      {{FORM ELEMENTS}}
   </div>
  </form>

这样您就不必重新绑定表单和新内容。

相关问题