Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择列表-加载和更改时检查_Javascript_Jquery - Fatal编程技术网

Javascript 选择列表-加载和更改时检查

Javascript 选择列表-加载和更改时检查,javascript,jquery,Javascript,Jquery,加载dom时以及有人更改选择选项时,尝试评估选择列表中选择的选项 我以为triggerHandler会触发我的功能?当页面加载时,应该说选择了值2 <select name="select-2" id="select-2"> <option value="1">1</option> <option value="2" selected>2</option> <option value

加载dom时以及有人更改选择选项时,尝试评估选择列表中选择的选项

我以为triggerHandler会触发我的功能?当页面加载时,应该说选择了值2

<select name="select-2" id="select-2">
        <option value="1">1</option>
        <option value="2" selected>2</option>
        <option value="3">3</option>
    </select>

$(function () {
    function ShowSelected() {
        $('#select-2').change(function () {
            if ($(this).val() == 1) {
                alert('value 1 is selected');
            } else if ($(this).val() == 2) {
                alert('value 2 is selected');
            } else if ($(this).val() == 3) {
                alert('value 3 is selected');
            }
        });
    }
    $('#select-2').change(ShowSelected).triggerHandler("change");
});

1.
2.
3.
$(函数(){
函数ShowSelected(){
$('#select-2')。更改(函数(){
if($(this).val()==1){
警报(“选择值1”);
}else if($(this).val()==2){
警报(“选择值2”);
}else if($(this).val()==3){
警报(“选择值3”);
}
});
}
$('select-2').change(ShowSelected.triggerHandler(“change”);
});

您应该研究如何使用。比如说,

$('select option:selected') .....

您的
ShowSelected
不是事件处理程序,它注册了一个更改事件处理程序

要使其工作,请按如下所示进行更改

$(function () {
    function ShowSelected() {
            if ($(this).val() == 1) {
                alert('value 1 is selected');
            } else if ($(this).val() == 2) {
                alert('value 2 is selected');
            } else if ($(this).val() == 3) {
                alert('value 3 is selected');
            }
    }
    $('#select-2').change(ShowSelected).triggerHandler("change");
});
演示:

您可以简单地执行此操作-(查看您现在拥有的内容)


ShowSelected();//你的第二个例子没有优化任何东西…我会这样组织它,但它不会使它变得更好。优化它的方法是存储
$('#select-2')
的结果,而不是调用两次。好吧,你的意思是我只是正确地组织了它。未优化…:O
 ShowSelected(); // <-- bind event to your select-2 in function
 $('#select-2').triggerHandler("change"); // <-- trigger change event