2012-03-03 93 views
1

我有以下代碼jQuery的提交處理程序與JQuery驗證和jQuery Ajax表單只能被稱爲2回1次

jQuery(function() { 
     jQuery("#newForm").validate({ 
      rules: { }, 
      submitHandler: function(form) { 
       alert("Submitting") 
       jQuery("#submitButton").attr('disabled', true) 
       jQuery("#sendWrapper").append('<span><img src="{{ STATIC_URL }}img/loading.gif"></span>') 
       jQuery(form).ajaxSubmit({ 
        success: afterFormSubmit, 
        target: "#ajaxwrapper" 
       }); 
      } 
     }); 
}); 

我發現,處理程序只獲取調用每一個第一,第三,第五,第七點擊提交按鈕的時間(響應幾乎就是插入錯誤等格式的html)。

但是,將函數更改爲onclick處理程序每​​次都可用。

回答

2

這應該工作正常:

jQuery(function() { 
     jQuery("#newForm").validate({ 
      rules: {}, 
      submitHandler: function(form) { 
       alert("Submitting") 
       jQuery("#submitButton").attr('disabled', true) 
       jQuery("#sendWrapper").append('<span><img src="{{ STATIC_URL }}img/loading.gif"></span>') 
       $.ajax({ 
        cache: false, 
        type: 'POST', 
        data: ("#newForm").serialize(), 
        url : '/ your-url-address-to-post-form /' 
        success: function (html) { 
         alert('done'); 
        }, 
        error: function(data, textStatus, jqXHR) { 
         alert('error') 
        } 
       }); 
      } 
     }); 
});​ 
+2

是否有一個原因,我的代碼不能正常工作? (我更感興趣的是jquery理論背後發生的事情,而不是讓它工作:S)) – Taras 2012-03-04 08:36:46

+1

我與@Taras。如果解釋了你的答案,可能會幫助有類似(但不完全相同)問題的人。 – Dan 2012-07-17 21:38:12