0

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

3 回答 3

1

你可以简单地做到这一点 - (看看你现在有什么

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

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

每次调用时ShowSelected();,您都会再次绑定更改事件,您应该只使用您的函数来显示您命名的选定值

于 2013-04-26T18:18:54.020 回答
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");
});

演示:小提琴

于 2013-04-26T18:14:47.647 回答
0

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

$('select option:selected') .....
于 2013-04-26T18:13:39.080 回答