2016-06-15 8 views
1

Ich habe einige Probleme bei der Verwendung von Javascript, um das Onchange-Attribut eines HTML-Elements zu setzen. Das Skript funktioniert gut, außer die else-Anweisung funktioniert nicht, auch wenn die Auswahl auf Nein geändert wurde. Ich habe versucht zu debuggen, aber nichts taucht auf. Kann jemand etwas Licht dazu sagen, warum dies geschieht?JavaScript zum Ändern onchange Attribut

<html><head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <style type="text/css"> 
    </style> 
    <title></title> 
<style type="text/css"></style></head> 
<body> 
    <div class="testclass"> 
     <select class="selectClass"> 
       <option value=""></option> 
       <option value="y">Yes</option> 
       <option value="n">No</option> 
     </select> 
     <input class="inputText" type="text"> 
    </div> 

    <script type="text/javascript"> 

    var div = document.getElementsByClassName("testclass")[0]; 
    //alert(div.getElementsByClassName("selectClass")[0].value); 
    var select = div.getElementsByClassName("selectClass")[0]; 

    select.setAttribute("onchange", "myfunction()"); 

    function myfunction() { 
      var x = document.getElementsByClassName("selectClass")[0]; 
      var y = document.getElementsByClassName("inputText")[0]; 
      if(x.value = "y"){ 
       y.value = "hello"; 
      } 
      else{ 
      y.value = "boo"; 
      } 
    } 
</script> 

</body></html> 

Antwort

1

Sie fehlt "=" in, wenn die Bedingung Mann

if(x.value == "y") 
+0

Bahhhhh, das ist ärgerlich, dass ich das nicht gesehen habe! Danke, dass du es gefangen hast, es hat mich eine halbe Stunde lang verrückt gemacht! Als Antwort markiert. Schande über mich .... Ich weiß es besser. –

+0

Es ist in Ordnung, Bruder. Jeder hat einen Fehler, wir helfen zusammen :) –

0
if(x.value = "y"){ 
y.value = "hello"; 
} 
else{ 
y.value = "boo"; 
} 

kann

umgewandelt werden
y.value = (x.value === 'y') ? 'hello' : 'boo'; 

Single gleich für die Zuordnung ist. == oder === ist zum Vergleich. Es wird auch empfohlen, === (starker Vergleich) zu verwenden, um sicherzustellen, dass sie vom selben Typ sind.