2017-08-19 12 views
0

これは以下の問題があります。私は2つのオプションの中から選択したい。 "1"を選択すると、F1()が呼び出されます。 "2"を選択すると、F2()が呼び出されます。残念ながら、私のコードでは何かが間違っています。多分誰かを助けることができる? ありがとうございました!onchange-eventに基づく関数を呼び出す

function abc(element){ 
 
\t \t \t \t \t var value1 = element.options[element.selectedIndex].value; 
 
\t \t \t \t \t 
 
\t \t \t \t \t switch(value1){ 
 
\t \t \t \t \t \t case 1: 
 
\t \t \t \t \t \t \t F1(); 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t \t case 2: 
 
\t \t \t \t \t \t \t F2(); 
 
\t \t \t \t \t \t \t break; 
 
\t \t \t \t \t \t 
 
\t \t \t \t \t } 
 
\t \t \t \t }
<select id = "nextGeneration" onchange="abc(this)" > 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 

 
    </select>

答えて

3

あなたのコードは、element.options[element.selectedIndex].value返す文字列値ので、動作していない、あなたは、整数に対してそれらを比較しています。それが「2」のためのケースを持っていますが、1を選択すると、あなたが引用符であなたのケースを設定する必要が

function F1(){ 
 
console.log(1); 
 
} 
 
function F2(){ 
 
console.log(2); 
 
} 
 
function abc(element){ 
 
       var value1 = element.options[element.selectedIndex].value; 
 
       switch(value1){ 
 
        case 1: 
 
         F1(); 
 
         break; 
 
        case "2": 
 
         F2(); 
 
         break; 
 

 
       } 
 
      }
<select id = "nextGeneration" onchange="abc(this)" > 
 
<option value="1">1</option> 
 
<option value="2">2</option> 
 

 
    </select>

1
<select id="nextGeneration" onchange="abc(this)"> 
<option value="1">1</option> 
<option value="2">2</option> 

</select> 

<script> 
    function F2() { 
     console.log("change 2"); 
    } 

    function F1() { 
     console.log("change 1"); 
    } 

    function abc(element) { 
     var value1 = element.options[element.selectedIndex].value; 

     console.log(value1); 

     switch (value1) { 
      case "1": 
       F1(); 
       break; 
      case "2": 
       F2(); 
       break; 

     } 
    } 
</script> 

、例を動作しないので、2つの作品を選択し、以下のコードで:ケース"2"。

関連する問題