2016-02-05 2 views
0

// JSпредставление ajaxForm происходит дважды

$("#saveMerchantsForm").ajaxForm({ 
       success : function(response){ 
        alert(response); 
       } 
      }).submit(); 

// HTML

<form class="form-horizontal" th:action="@{/manager/saveMerchant}" th:object="${merchantModal}" id="saveMerchantsForm" method="POST"> 

<div class="row"> 
<div class="input-field col m6 s12"> 
<input class="clear" th:field="*{merchantFname}" id="merchantFname" type="text"/> 
<label class="merchantFname clear" style="width: 100%;" for="merchantFname">Merchant First Name</label> 
</div> 
<div class="input-field col m6 s12"> 
<input class="clear" id="merchantMname" th:field="*{merchantMname}" type="text"/> 
<label class="merchantMname clear" style="width: 100%;" for="merchantMname">Merchant Middle Name</label> 
</div> 
</div> 
</form> 

в то время как я иду для представления, это отправить форму в два раза, как я могу это предотвратить?

ответ

0

вы могли бы попробовать добавить отвязать до вашей функции .ajaxForm, как это:

$("#saveMerchantsForm").unbind('ajaxForm'); 
$("#saveMerchantsForm").ajaxForm({ 
      success : function(response){ 
       alert(response); 
      } 
     }).submit(); 

Или вы могли бы использовать один такой:

$("#saveMerchantsForm").one('ajaxForm'); 
$("#saveMerchantsForm").ajaxForm({ 
      success : function(response){ 
       alert(response); 
      } 
     }).submit(); 

один означает, что эта функция будет работать только один раз на элемент.

unbind удаляет ранее привязанный элемент.

Это, по крайней мере, решает мою проблему с функциями, срабатывающими несколько раз