Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript


Koosh

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.

Xeraqu

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 ===, alertbedeutet dies, dass die Prüfung fehlgeschlagen ist , wenn Ihre Anweisung nicht mehr ausgeführt wird. dh document.getElementById("<%=drp1.ClientID%>").valueist 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')

Verwandte Artikel