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

时间:2013-04-26 18:11:16

标签: javascript jquery

JSFiddle

尝试评估加载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");
});

3 个答案:

答案 0 :(得分:1)

您的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");
});

演示:Fiddle

答案 1 :(得分:1)

你可以这样做 - (看看你现在拥有的东西

 ShowSelected(); // <-- bind event to your select-2 in function
 $('#select-2').triggerHandler("change"); // <-- trigger change event

http://jsfiddle.net/mohammadAdil/g6GWV/

每当您致电ShowSelected();时,您再次绑定更改事件,您应该只使用您的函数在您命名时显示所选值

答案 2 :(得分:0)

您应该考虑使用:selected。例如,

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