Jörn Zaeffere mükemmel jQuery Validation eklentisi ile (bazı özel doğrulama için eklenen yöntemler ile) doğruladığım birden çok alana sahip bir form var. Belirtilen gönderme denetimleriyle doğrulamayı nasıl atlatabilirsiniz (diğer bir deyişle, bazı gönderme girdileriyle yangın doğrulaması yapar, ancak başkalarıyla ateşleme yapmazsınız)? Bu, standart ASP.NET doğrulayıcı denetimlerine sahip ValidationGroups'a benzer.
Benim durumum:
ASP.NET WebForms ile birlikte, ancak isterseniz bunu göz ardı edebilirsiniz. Ancak, doğrulamayı daha çok "öneri" olarak kullanıyorum: başka bir deyişle, form gönderildiğinde, doğrulama etkinleşiyor, ancak "zorunlu" bir ileti görüntülemek yerine, "siz" aşağıdaki alanları kaçırdınız .... yine de devam etmek istiyor musunuz? " Hata kapsayıcısının bu noktasında, artık görülebilen ve doğrulamayı yok sayan ve yine de gönderecek başka bir gönderme düğmesi var. Bu düğme denetimi ve hala yazı için .validate () formlarını atlatmak nasıl?
Http://jquery.bassistance.de/validate/demo/multipart/ adresindeki Bir Ev Satın Al ve Sat örneği , önceki bağlantılara ulaşmak için buna izin verir, ancak bunu özel yöntemler oluşturarak ve doğrulayıcıya ekleyerek yapar. Zaten doğrulama eklentisinde işlevselliği çoğaltan özel yöntemler oluşturmak zorunda kalmamayı tercih ederim.
Aşağıda, şu anda aldığım hemen uygulanabilir komut dosyasının kısaltılmış bir sürümüdür:
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'
});