如何使“改变事件”;使用.attr()时处理选择下拉菜单

How to make the "change event" work on a select drop-down menu when using .attr()

本文关键字:attr 处理 下拉菜单 选择 使用 何使 改变 事件 改变事件      更新时间:2023-09-26

下面有一个选择下拉菜单:

 <select id="select-param-num">
 <option value='0'>0</option>
 <option value='1'>1</option>
 <option value='2'>2</option>
 </select>

我有下面的触发器,当用户更改所选选项时更新我的页面上的东西:(我首先调用)

$('#select-param-num').change(function () {    
    //update stuff
});

然后在我的初始化中我将下拉菜单设置为一个特定的值,像这样:

$("select#select-param-num option[value=2]").attr('selected', true);

我期待。change()会被调用,自动更新我的页面,但它没有。

你有什么建议吗?

谢谢

触发事件,有三种方法:

$('#select-param-num').change(); //same as .trigger('change')
$('#select-param-num').trigger('change'); //same as .change()
$('#select-param-num').triggerHandler('change'); //same as others but just because change event doesn't bubble

使用.triggerHandler运行您的事件处理代码:

$("#select-param-num").triggerHandler('change');

您也不应该使用.attr来设置下拉列表的值。这样做:

$("#select-param-num").val("2");

可以使用trigger。

$('#select-param-num').trigger('change');

.trigger ()

在选择中,没有value=6的选项。如果您添加它,并稍微更改代码,它就可以工作。看看这里:http://jsfiddle.net/sjJkN/

$('#select-param-num').change(function () {    
    $("select#select-param-num option[value=6]").attr('selected', 'selected');
});