ASP MVC3:对onsubmit事件禁用不显眼的验证

时间:2011-11-16 16:46:52

标签: javascript jquery asp.net-mvc-3

我遇到了一个性能问题,因为我有一个大表单,其中有一个表可以包含100多条记录。原因是,当我提交表单时,会触发每个项目的验证,这会造成5秒的延迟,这是不可接受的。

有没有办法在此表单中为此事件禁用此功能?我正在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 个答案:

答案 0 :(得分:1)

如果将类cancel添加到提交按钮,则会向jquery.validate.js发出信号,指示单击提交按钮时不应进行验证。

<强>更新

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行为。

请检查您发布的活动进度图像中的每个步骤。几乎可以肯定,该树中的某些内容将指示默认行为被覆盖的位置。