jQuery.Überprüfen Bedingte Validierung RadioButton-und DropDownList
Ich versuche, einige Validierung, so dass, wenn die " ja " radio-button aktiviert ist eine andere Steuerung, die eine drop-down-Liste muss validiert werden, um sicherzustellen, dass es nicht auf den Standardwert für den ersten Eintrag in der Liste "Bitte Wählen...".
Ich habe versucht, so viele Kombinationen, aber nicht in der Lage, diese zu arbeiten. Die Validierungs-Nachricht zeigt an, ob das Kontrollkästchen aktiviert ist oder nicht.
Heres einige code!
Dies ist eine benutzerdefinierte Methode, die ich habe, die ich verwenden, um zu validieren, mein drop-down-Listen. (Dies funktioniert gut für einfache DDL-Validierung)
$.validator.addMethod(
"selectNone",
function(value, element) {
return this.optional(element) || element.value != "Please Select...";
},
"Please select an option."
);
Dazu die Validierung auf der Grundlage der checkbox habe ich Hinzugefügt, in der Regel die form
$(document).ready(function() {
var validator = $("#BuildingsCoverForm").validate({
rules: {
NCBYears: {
selectNone: function(element) {
return $("*[name='PreviousInsurance']")[0].checked;
}
}
},
messages: {
NCBYears: {
selectNone: "This field is required"
}
}
});
});
Und hier sind die Kontrollen.
<p>
<label for="PreviousInsurance" class="halfstretch">Do you have any previous insurance?</label>
<%= Html.YesNoControl("PreviousInsurance", Model.PreviousInsurance)%>
</p>
<p>
<label for="NCBYears" class="halfstretch">Building No Claim Bonus</label>
<%= Html.DropDownList("NCBYears", ViewData["NCBYears"] as SelectList)%>
</p>
Irgendwelche Ideen würde sehr geschätzt werden.
Vielen Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Solange Sie in der ersten drop-down-Liste die option einen leeren Wert (
<option value="">some text</option>),
folgender Regel funktioniert:aus: http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression
ScottE korrekt ist. Ich habe eine dropdownlist aufgefüllt, die aus einer Datenbank und ich nur angehängt, ein Element ganz oben auf der Liste und gab Sie ihm den Wert "". Wenn Sie überprüfen die Eingabe validieren Sie einfach gegen die dropdownlist leer ist. Man könnte auch codieren Sie die Liste auf, wenn es sich nie ändert, und fügen Sie ein Element auf der Oberseite mit einem leeren Wert, Beispiel unten.
Dieser funktioniert nicht mit der aktuellen version von Validate.js (v 1.7)
War ich auch in der Lage zu beweisen, dass das Konzept nicht funktioniert:
Diese auch nicht.