2017-03-19 6 views
0

Bitte überprüfen Sie die switch-AnweisungHTML Wählen Sie mit JavaScript nicht funktioniert

Nur Standardoption funktioniert.

case x="Fin" und case x="Intercom" funktionieren nicht. Nicht sicher warum. Vielen Dank!

Code:

<p>Niche</p> 
     <select name="niche" id="niche" onchange="FCM_niche()"> 
      <option value="empty" selected="">Select Niche</option> 
      <option value="fin">FIN</option> 
      <option value="intercom">Intercom</option> 
     </select> 

    <script type="text/javascript"> 
       function FCM_niche() { 
        var x = document.getElementById("niche").value; 
        switch (true) { 
         case x="FIN": 
          document.getElementById("FCM_select_niche").innerHTML = "FFFF"; 
          break; 
         case x="Intercom": 
          document.getElementById("FCM_select_niche").innerHTML = "IIII"; 
          break; 
         default: 
          document.getElementById("FCM_select_niche").innerHTML = "DDDD"; 
         } 
       }; 
      </script> 
<div id="FCM_select_niche">   
</div> 
+0

Ihre Switch-Anweisung ist falsch gemacht. 'switch (true)' negiert den ganzen Punkt, an dem der Schalter überhaupt vorhanden ist. – Bango

+0

@Bango - 'switch (true)' ist absolut gültig. Aber in den Fällen sollte es '==' oder '===' sein, nicht '=', d. H. Es sollte ein Vergleich sein, keine Zuweisung. ('=' ist kein Syntaxfehler, aber es tut nicht, was das OP will.) – nnnnnn

+0

Ich diskutiere nicht, dass es gültig ist. Es ist einfach nicht wie Switch verwendet werden soll. – Bango

Antwort

1

Bitte nehmen Sie sich einen Blick auf diese Geige JS Arbeitsversion des Codes zeigt: https://jsfiddle.net/jspruance/ebjnqt2r/

nur ein paar kleine Optimierungen, um Ihre JS machen und Sie sollten in Betrieb genommen werden.

1) Orientieren Sie switch-Anweisung auf der 'x' Variable: 'switch (x)'

2) Basis jeweils bezogen auf den Wert ausgewählt (anstelle des angezeigten Textes): ex: case „fin "

function FCM_niche() { 
    var x = document.getElementById("niche").value; 

    switch(x) { 
     case "fin": 
      document.getElementById("FCM_select_niche").innerHTML = "FFFF"; 
      break; 
     case "intercom": 
      document.getElementById("FCM_select_niche").innerHTML = "IIII"; 
      break; 
     default: 
      document.getElementById("FCM_select_niche").innerHTML =  "DDDD"; 
    } 
}; 

Dies sollte den Trick tun ... viel Glück.

1

Ihre switch-Anweisung ist ungültig. Auch Sie Schaltergehäuse gegen ausgewählte Text nicht auf Wert

<p>Niche</p> 
 
     <select name="niche" id="niche" onchange="FCM_niche()"> 
 
      <option value="empty" selected="">Select Niche</option> 
 
      <option value="fin">FIN</option> 
 
      <option value="intercom">Intercom</option> 
 
     </select> 
 

 
    <script type="text/javascript"> 
 
       function FCM_niche() { 
 
        var x = document.getElementById("niche").value; 
 
        switch (x) { 
 
         case "fin": 
 
          document.getElementById("FCM_select_niche").innerHTML = "FFFF"; 
 
          break; 
 
         case "intercom": 
 
          document.getElementById("FCM_select_niche").innerHTML = "IIII"; 
 
          break; 
 
         default: 
 
          document.getElementById("FCM_select_niche").innerHTML = "DDDD"; 
 
         } 
 
       }; 
 
      </script> 
 
<div id="FCM_select_niche">   
 
</div>

+0

* "Ihre switch-Anweisung ist ungültig." * - Was meinen Sie "ungültig"? Es ist absolut gültige JS-Syntax, die ohne Fehler ausgeführt wird, es tut einfach nicht, was das OP erwartet. – nnnnnn

+0

Ich meine die ganze Aussage, nicht über die Syntax @nnnnnn diskutieren –

1
var x = document.getElementById("niche").value; 
switch (x) { 
    case "FIN": 
    document.getElementById("FCM_select_niche").innerHTML = "FFFF"; 
    break; 
    case "Intercom": 
    document.getElementById("FCM_select_niche").innerHTML = "IIII"; 
    break; 
    default: 
    document.getElementById("FCM_select_niche").innerHTML = "DDDD"; 
} 
1

Ihr Switch Fall falsch Überprüfung ist

Dieses korrekt ist

function FCM_niche() { 
        var x = document.getElementById("niche").value; 
        switch (x) { 
         case "fin": 
          document.getElementById("FCM_select_niche").innerHTML = "FFFF"; 
          break; 
         case "intercom": 
          document.getElementById("FCM_select_niche").innerHTML = "IIII"; 
          break; 
         default: document.getElementById("FCM_select_niche").innerHTML = "DDDD"; 
          break; 
         } 
       }; 

Sie müssen nur pass Variable mit Schalter (YOUR_VAR)

und vergleichen Sie es nur mit CASE "STRING":

Auch Javascript ist Groß- und Kleinschreibung Sprache, also FIN & Flosse ist nicht gleichwertig.

Verwandte Themen