2011-11-16 132 views
1

我有一個性能問題,因爲我有一個大表格,可以包含100 +記錄。原因是,當我提交表單時,每個單個項目的驗證被解僱,這導致5秒延遲,這是不可接受的。ASP MVC3:關於onsubmit事件禁用不顯眼的驗證

有沒有辦法在此表單中禁用此功能?我正在onblur事件和服務器端執行驗證,所以我認爲如果我在onsubmit事件中跳過它,它將是安全的。

我試過以下,並沒有奏效:

//1 
$.validator.setDefaults({ 
    onsubmit: false 
}); 

//2 
var validationSettings = $.data($('form')[0], 'validator').settings; 
validationSettings.onsubmit = false; 

//3 
$("form").validate().cancelSubmit = true; //This is on the onclick of the submit button 

回答

1

如果該類cancel添加到您的提交按鈕,將信號jquery.validate.js該驗證不應該做的當提交按鈕被點擊。

UPDATE

jquery.validate.js包含以下內容:

// allow suppresing validation by adding a cancel class to the submit button 
inputsAndButtons.filter(".cancel").click(function() { 
    validator.cancelSubmit = true; 
}); 

根據您所舉報的問題,必須有別的東西連接到您提交事件,這是壓倒一切的行爲jquery.validate的提交按鈕與取消類。

請檢查您發佈的事件進度圖像中的每個步驟。這棵樹中幾乎肯定有東西會指示默認行爲被覆蓋的位置。

+0

我也試過,但沒有運氣。我在頁面上運行了「this.find(」input,button「)。filter(」。cancel「)」代碼,它實際上找到了這個按鈕,但我仍然在IE的探查器上得到這個: http ://imgur.com/h7Aqf – groovejet

+0

該按鈕的HTML是: 有一件事可能會影響到這一點,就是這個表單在IE瀏覽器的模式彈出窗口中,在某些情況下它顯示出一些奇怪的行爲,我不知道這可能是其中的一種。 – groovejet

+0

第一次載入頁面時是填充模式彈出窗口,還是稍後通過AJAX進行填充?如果它通過AJAX填充,那很可能是一個問題。 – counsellorben