提交函数在第一次提交jquery,PHP之后提交两次

时间:2016-08-23 21:02:48

标签: javascript php jquery html

function slideupSubmit (name) {
    $(name).submit(function ( event ) {
        event.preventDefault();
        var target = $(this).attr("action");
        var response = $(this).attr("response");
        var formName = $(this).attr("id");

        $.post(target, 
            $(this).serialize() + '&' + $.param({ 'formName':formName, response : response}),
            function (data) {
                $(response).html(data);
                $(name).hide();
                $(name)[0].reset();
            }
        );
    });
};

function resetForm (name){
    $(name).show();
};

我真的很新,只编写了几个月,所以如果我的代码非常糟糕,我道歉,如果解决方案非常简单,请原谅我。 我编写了这段代码,所以我可以重复使用它来在我的页面上提交不同的表单,并将响应发送到它上面的div。我能够发布我想要的所有内容但是在第一次发布后,如果我再次发帖,它将发布两次。然后三次。我知道我做错了但我找不到错误。

我将此包含在我的回复中,以便在隐藏后将表单带回来。

<a onClick="resetForm('.$_POST['formName'].')" href="#" response=""> New Form?</a>

这是表格。

                       <!-- Form 1 --->
 <div class="row ">
     <div class="col-xs-12">
    <div class="well well-dark ">
                   <h4><a href="#" onclick="form('contactUpdate')">Update Contacts</a></h4>
        <span class="contactUpdate-response text-success"></span>
         <form id="contactUpdate" class="form form-inline hidden contact-form" response=".contactUpdate-response" method="post" action="ajax/contactUpdate.php">

             <div class="form-group">
              <input hidden name="contact_entry" value="1"/>
             </div>


             <div class="form-group">
            <label>Contact Title:</label>
             <input class="form-control" name="contact_title" required />
             </div>

             <div class="form-group">
             <label>Link to Employee</label>
                <select name="empId" class="form-control select-emp-name"></select>  
             </div>

             <div class="form-group">
              <label>Category:</label>
              <select  name="category"class="form-control select-contact-categories "> 
             </div>

              <div class="form-group">
              <label>Link to Location</label>
              <select name="locat_id" class="form-control select-location"></select> 
              </div>

               <div class="form-group">
               <label>Number:</label>
               <select name="extId" class="form-control select-dig-ext"></select>    
                </div>

                 <div class="form-group">
                 <input hidden name="updateBy" value="24"/>
                 </div>

            <div class="form-group">
            <input onclick="slideupSubmit(contactUpdate)" type="submit" class="form-control btn btn-primary" value="Update List" />
            </div>
            </form>
         </div>
     </div>
 </div>
                    <!--- -->

1 个答案:

答案 0 :(得分:0)

<input type="submit" class="form-control btn btn-primary" value="Update List" />

让你的事件监听器失去功能  并删除onclick = ...

 $(name).submit(function ( event ) {
    event.preventDefault();
        var target = $(this).attr("action");
            var response = $(this).attr("response");
            var formName = $(this).attr("id");
                $.post( target, $(this).serialize()
                       +'&'+$.param({ 'formName': formName,
                                    response : response}),
                    function(data){$(response).html(data);
                    $(name).hide();
                    $(name)[0].reset();
    });