根据 selected select 字段选项调用自定义函数

Call a custom function based on selected select field option

下面这段代码有问题。

我想在 2 个选项中进行选择。当我选择 "1" 时,就会调用 F1()。 When choose "2", then F2() is called.

不幸的是我的代码有问题。

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> 

您的代码无法正常工作,因为 element.options[element.selectedIndex].value returns 字符串值并且您正在将它们与整数进行比较。在下面的代码中,选择 2 有效,因为它有 "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> 

<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”。