如何使“改变事件”;使用.attr()时处理选择下拉菜单
How to make the "change event" work on a select drop-down menu when using .attr()
下面有一个选择下拉菜单:
<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');
});
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- keyup事件处理程序更改焦点不适用于快速键入
- 如何使用jquery处理php循环通过元素
- angular.js没有'无法在PhoneGap中处理视图标记
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- javascript:如何在antlr生成的Lexer中进行错误处理
- 如何编写一个具有公共标头的批处理
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 如何处理node.js节点mongodb中的连接和查询队列
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何处理10页以上的静态页眉/页脚
- 将事件处理程序绑定到任何可能的事件
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- python到“;流“;字典处理
- 使用javascript进行实时图像处理
- 导入jQuery脚本获胜'我不处理html文件
- Javascript无法处理表单提交
- 在承诺链中处理早期回报的最佳方式
- 如何使“改变事件”;使用.attr()时处理选择下拉菜单