2017-08-20 25 views
1

以及更多的,我有这个jQuery的岗位:PHP的归档文件被称为不止一次

$('.form-submit').click(function(){ 

    var form = $(this).attr('data-form'); 

    $("#"+form).submit(function(e) { 

     e.preventDefault(); 
     $.ajax({ 
      url: "../assets/action/action.php", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData:false, 
      success: function(data) 
      { 
       $(".return-post-msg").html(data); 
      } 
     }); 
    }); 
}) 

的一点是,它的做工精细,但如果我再次单击button.form提交,jQuery的被称为一旦正常,但action.php将文件被称为两次,如果我再次点击,3个......如果clcik againx ..所有我在我的action.php的是

echo "<script> alert('".$method." aaaaa'); </script>"; 

进行检查多少次文件被称为...

这是HTML:

  <form id="create_requisite"> 

       <input type="hidden" name="method" value="create_requisite" /> 

       <div class="modal-heading"> <!-- Start of modal-heading --> 

        <h3>Create Requisite</h3> 

       </div> <!-- End of modal-heading --> 

       <div class="modal-body"> <!-- Start of modal-body --> 

        <div class="form-group"> <!-- Start of form-group --> 

         <label>Requisite Name</label> 
         <input type="text" class="form-control input-primary" name="name_requisite" /> 

        </div> <!-- End of form-group --> 

       </div> <!-- End of modal-body --> 

       <div class="modal-footer"> <!-- Start of modal-footer --> 

        <span class="return-post-msg"></span> 
        <button class="btn btn-default form-submit" data-form="create_requisite">Create</button> 

       </div> <!-- End of modal-footer --> 

      </form> 

有人能帮助我吗?

+0

所以你想要禁用按钮,当它被点击?或者你想检查服务器端,如果表单多次提交? – slhck

+0

我想点击我想要的任何东西,但有时候我点击了,我只想打电话给一次action.php –

+0

您能分享相关的HTML部分吗?有多种形式? – JazZ

回答

1

您正在监听可能导致事件触发多次的点击事件和提交事件。相反,只要听取提交事件。

$(this).attr('data-form').on('submit', function(e) { 
    // make your ajax call 
}); 

您还可以使用.one()同时宣布事件处理程序,以便它仅会处理该事件一次。

$(this).attr('data-form').one('submit', function(e) { 
    // make your ajax call 
}); 

然而,使用这种谨慎,否则用户可能需要刷新页面只是这样他们就可以在表单上定下来后,他们试图提交。

+0

不能使它工作使用你的例子.. –