2011-11-16 140 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