Ich habe derzeit ein Formular, das ich mit dem jQuery Validator-Plugin validiere. Innerhalb des Formulars habe ich ein Feld, das je nach Eingabe ein anderes Feld benötigt oder nicht.jQuery Validierung nicht korrekt wahr
<select name="supportiveServices" id="supportiveServices" style="float: left; margin-left: 20px; width: 30%;">
<option value="">Select One</option>
<option value="Accepted">Accepted</option>
<option value="Declined">Declined</option>
</select>
<input name= "serviceStartDate" id= "serviceStartDate" type="date" style="width: 50%;"></input>
jQuery
serviceStartDate: {
required: function(element) {
if($("#supportiveServices").val() == 'Accepted') {
return true;
}
else {
return false;
}
},
},
Diese Abhängigkeit Anforderung scheint gut zu funktionieren, aber die Frage, die ich konsequent in leite ist ich, dass ich das Datum gültig und müssen. Ich habe eine Methode hinzugefügt, um sicherzustellen, dass Daten gültig sind.
jQuery.validator.addMethod("DateFormat",
function(value, element) {
return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
},
"Please enter a date in the format dd/mm/yyyy";
);
Ich bin neu in diesem Plugin, aber ich habe die folgenden zwei Lösungen ausprobiert, von denen beide true zurück und erfordern Eingabe:
eine Funktion erstellen, die im Grunde true zurück, wenn das Datum leer ist und falsch, wenn nicht.
serviceStartDate: { required: function(element) { if($("#supportiveServices").val() == 'Accepted') { return true; } else { return false; } }, DateFormat: function(element) { if($("#serviceStartDate").val() != 0 || $("#serviceStartDate").val() != null || $("#serviceStartDate").val() != undefined || $("#serviceStartDate").val() != '') { return true; } else { return false; } } },
Erstellen Sie eine separate Methode.
jQuery.validator.addMethod("DateFormatSupport", function(value, element) { if ($("#serviceStartDate") == 0) { return value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/); } }, "Please enter a date in the format dd/mm/yyyy"//removed ; );
und es ruft.
serviceStartDate: {
required: function(element) {
if($("#supportiveServices").val() == 'Accepted') {
return true;
}
else {
return false;
}
},
DateFormatSupport: true
}
},
Ich brauche im Grunde den Validator, um sicherzustellen, wenn der Kunde nicht wählen „Akzeptiert“ für unterstützende Dienstleistungen, dann serviceStartDate optional sein kann. Wenn "Akzeptiert" für unterstützenden Service gewählt wurde, müssen sie serviceStartDate ausfüllen und das Datum muss ebenfalls gültig sein. Als Vorsichtsmaßnahme möchte ich, wenn sie irgendetwas in serviceStartDate ausgefüllt haben, ob es optional ist oder nicht, ein Datum sein - Dies geht zu einer Datenbank, so dass es entweder Null oder ein Datum sein muss.
Irgendwelche Ratschläge?
Haben Sie die 'date' Regel versucht, die bereits in das Plugin eingebaut ist? – Sparky