Mam formularz z wieloma polami, które sprawdzam (niektóre z metodami dodanymi do niestandardowej weryfikacji) za pomocą doskonałej wtyczki jQuery Validation firmy Jörn Zaeffere. W jaki sposób obchodzisz sprawdzanie poprawności z określonymi kontrolkami przesyłania (innymi słowy, sprawdzanie poprawności przeciwpożarowej z niektórymi danymi wejściowymi, ale nie sprawdzaj poprawności z innymi)? Byłoby to podobne do ValidationGroups ze standardowymi kontrolkami ASP.NET.Wtyczka sprawdzania poprawności jQuery: wyłącza sprawdzanie poprawności dla określonych przycisków przesyłania
Moja sytuacja:
To z ASP.NET WebForms, ale można zignorować, jeśli chcesz. Jednak używam walidacji bardziej jako "zalecenia": innymi słowy, kiedy formularz jest wysyłany, sprawdzanie poprawności jest uruchamiane, ale zamiast "wymaganego" wyświetlania komunikatu, "zalecenie" pokazuje, że mówi coś wzdłuż linii "ty". ominęły następujące pola .... czy chcesz kontynuować mimo to? " W tym momencie w pojemniku błędu jest teraz widoczny inny przycisk do przesłania, który zignorowałby zatwierdzenie i mimo to przesłał go. Jak obejść formularze .validate() dla tej kontrolki przycisku i nadal pisać?
Próbka Kup i Sprzedaj dom pod numerem http://jquery.bassistance.de/validate/demo/multipart/ pozwala na to, aby trafić w poprzednie łącza, ale robi to poprzez tworzenie niestandardowych metod i dodawanie ich do walidatora. Wolałbym nie tworzyć niestandardowych metod powielania funkcjonalności już w dodatku do sprawdzania poprawności.
Poniżej znajduje się skrócona wersja natychmiast obowiązującym skrypt, który mam teraz:
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'
});
określić także zwrotu kluczowego na przycisku, tak że nie będzie poruszać z dala http://technote.in/TechNote/Forums/AspnetReply.aspx?post_id=134 –