Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript
Werde hier verrückt. Wenn Sie an einer asp.net-Anwendung arbeiten, müssen Sie einige benutzerdefinierte Validierungen hinzufügen und gerade anfangen, sie zu schreiben, und dachte, ich würde sie testen.
Ich habe eine Elternkontrolle drp1 und 2 Kinderkontrollen txt1 und txt2. Beim Laden der Seite sind beide TXT-Steuerelemente deaktiviert.
Wenn der Benutzer 'Ja' von drp1 auswählt, rufe ich die folgende Funktion auf, um zu versuchen, txt1 zu aktivieren, aber es funktioniert nicht und ich weiß nicht warum:/
function EnableDisableSometing() {
try {
if (document.getElementById("<%=drp1.ClientID%>").value = "Yes") {
alert("HERE");
(document.getElementById("<%=txt1.ClientID%>").disabled = false);
}
}
catch (e) {
alert("EnableDisableMentalHealthError :" + e.message);
}
}
Was hier passiert, ist, dass txt1 aktiviert wird, der ausgewählte Textwert im Dropdown-Menü jedoch einfach verschwindet. in der zweiten wähle ich 'JA' aus, es aktiviert txt1 und der Text im Dropdown-Menü ist leer. Ich kann einen anderen Wert "NEIN" auswählen, zum Beispiel passiert dasselbe.
Alles, was ich tun möchte, ist zu überprüfen, ob drp1.text = 'Yes' ist, und dann eine Reihe von Steuerelementen aktivieren, nichts Besonderes.
Sie verwenden =
in Ihrer if-Anweisung, die kein boolescher Operator ist. Es setzt den Wert Ihres Dropdown-Menüs auf 'Yes'
und überprüft nicht , ob er gleich ist 'Yes'
.
Um diese Prüfung durchzuführen, müssen Sie ==
oder verwenden ===
, die einen wichtigen Unterschied (in JavaScript) haben, über den Sie so ziemlich überall nachlesen können.
Wenn Sie ==
oder verwenden ===
, alert
bedeutet dies, dass die Prüfung fehlgeschlagen ist , wenn Ihre Anweisung nicht mehr ausgeführt wird. dh document.getElementById("<%=drp1.ClientID%>").value
ist nicht gleich 'Yes'
.
var x = 1;
if (x = 10) // clearly not true, x is 1.
console.log('Somehow this executes anyway');
if (x == 10)
console.log('This is also going to execute, because we set x to 10 in the above if statement')
if (x == 20)
console.log('This will not execute')