ASP MVC3: отключить ненавязчивую проверку события onsubmit - PullRequest
1 голос
/ 16 ноября 2011

У меня проблема с производительностью из-за большой формы, где есть таблица, которая может содержать более 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 Ответ

1 голос
/ 16 ноября 2011

Если вы добавите класс 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.подтвердите для кнопки отправки с классом отмены.

Пожалуйста, проверьте каждый шаг в изображении, которое вы опубликовали, о ходе события.В этом дереве почти наверняка есть что-то, что будет указывать, где поведение по умолчанию переопределяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...