У меня есть форма с несколькими полями, которые я проверяю (некоторые с помощью методов, добавленных для выборочной проверки) с отличным плагином JQuery Validation от Jörn Zaeffere. Как вы обходите проверку с помощью указанных элементов управления отправкой (другими словами, проверка работоспособности с некоторыми сообщениями ввода, но не срабатывает проверка с другими)? Это будет похоже на ValidationGroups со стандартными контрольными элементами ASP.NET.jQuery Validation plugin: отключить проверку для заданных кнопок отправки
Моя ситуация:
Это с ASP.NET WebForms, но вы можете игнорировать, что если вы хотите. Тем не менее, я использую валидацию скорее как «рекомендацию»: другими словами, когда форма отправляется, выполняется проверка, но вместо отображения «требуемого» сообщения «рекомендация» показывает, что что-то говорит по строке «вы пропустили следующие поля ... Вы все равно хотите продолжить? " В этот момент в контейнере ошибок появляется другая кнопка отправки, которая может быть нажата, которая будет игнорировать проверку и отправить в любом случае. Как обходить формы .validate() для этой кнопки управления и по-прежнему сообщение?
Образец покупки и продажи дома в http://jquery.bassistance.de/validate/demo/multipart/ допускает это для того, чтобы поразить предыдущие ссылки, но он делает это путем создания собственных методов и добавления их в валидатор. Я бы предпочел не создавать собственные методы, дублирующие функциональные возможности уже в плагине проверки.
Ниже приводится сокращенный вариант немедленно применимой сценарий, который я получил прямо сейчас:
var container = $("#<%= Form.ClientID %> div.validationSuggestion");
$('#<%= Form.ClientID %>').validate({
errorContainer: container,
errorLabelContainer: $("ul",container),
rules: {
<%= YesNo.UniqueID %>: { required: true },
<%= ShortText.UniqueID %>: { required: true } // etc.
},
messages: {
<%= YesNo.UniqueID %>: 'A message.',
<%= ShortText.UniqueID %>: 'Another message.' // etc.
},
highlight: function(element, errorClass) {
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass("valid");
},
unhighlight: function(element, errorClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass("valid");
},
wrapper: 'li'
});
также указать ключевое слово возвращения на кнопке, чтобы она не будет перемещаться away http://technote.in/TechNote/Forums/AspnetReply.aspx?post_id=134 – 2011-01-08 05:59:18