Ich habe ein Szenario, wenn ich 3 Dropdown-Felder habe und zwei Validierungen über sie implementieren muss, aber als Gruppe.jQuery-Validierungslogik schlägt fehl, wenn das letzte Element gültig ist
1) Von 3, 2 Dropdown-Listen sollten einen anderen Wert als "Nein" haben. Dies entspricht der erforderlichen Validierung. Anstatt auf Leer zu prüfen, wird nach "Nein" gesucht.
2) No 2 dropdowns können denselben Wert haben.
jQuery.validator.addMethod("require_from_group", function(value, element, options) {
var numberRequired = options[0];
var selector = options[1];
var fields = $(selector, element.form);
var filled_fields = fields.filter(function() {
// it's more clear to compare with empty string
return $(this).val() != "No";
});
var empty_fields = fields.not(filled_fields);
// we will mark only first empty field as invalid
if (filled_fields.length < numberRequired){ //&& empty_fields[0] == element) {
return false;
}
return true;
// {0} below is the 0th item in the options field
}, jQuery.format("Please fill out at least {0} of these fields."));
jQuery.validator.addMethod("notEqualToGroup", function(value, element, options) {
var numberRequired = options[0];
var selector = options[1];
// get all the elements passed here with the same class
var elems = $(element).parents('form').find(selector).not(element);
// the value of the current element
var valueToCompare = value;
// count
var matchesFound = 0;
// loop each element and compare its value with the current value
// and increase the count every time we find one
jQuery.each(elems, function(){
thisVal = $(this).val();
if(thisVal == valueToCompare){
matchesFound++;
}
});
if (matchesFound >= numberRequired){ //&& elems[0] != element) {
return false;
}
return true;
}, jQuery.format("No two fields can have same value."));
Eines der Szenarien ist fehlgeschlagen das heißt, wenn select1 und select2 nicht „Nein“, aber immer noch denselben Wert haben keine msg angezeigt wird.
Kann jemand bitte vorschlagen was fehlt. Dank
Warum Sie eine 7-jährige Version von jQuery Validate verwenden ?! Viele Bugs wurden seither in 'require_from_group' behoben. Bitte aktualisieren Sie auf Version 1.15.0 und refaktorieren Sie Ihren Code entsprechend. – Sparky