首页 > 其他 > 详细

select onchange 事件的触发

时间:2014-09-26 19:01:29      阅读:377      评论:0      收藏:0      [点我收藏+]
做小组内使用的一个简单工具,其中要实现的一个小功能是当某个下拉菜单的选择值改变时触发另一表单元素的属性变化。自然的想到使用select表单元素的onchange事件。

下拉菜单部分的代码如下:
<select name="type" id="type" disabled="disabled" onchange="setDelType(this)">
     <option value="1">1-分区表</option>
     <option value="2" selected="selected">2-普通表</option>
</select>
下拉菜单的值通过JS更改:
...
tableType = getTableType(DNS, port, DBName, tableName);
if(tableType == 1){
    $("#type").val("1");
}else if (tableType == 2){
    $("#type").val("2");
}
...
结果发现下拉菜单的值发生变化时setDelType(this)并未被调用。原来,通过JS来改变select的值时不会触发其onchange事件的。只有通过鼠标或键盘操作,而且选择的值不同于原始值时才会触发该事件。若需通过JS改变select的值并触发onchange事件需要在代码中显式的触发一下。

修改后的代码如下:
...
tableType = getTableType(DNS, port, DBName, tableName);
if(tableType == 1){
    $("#type").val("1");
    $("#type").change();
}else if (tableType == 2){
    $("#type").val("2");
    $("#type").change();
}
...

或者:

...
tableType = getTableType(DNS, port, DBName, tableName);
if(tableType == 1){
    $("#type").val("1").change();
}else if (tableType == 2){
    $("#type").val("2").change();
}
...


select onchange 事件的触发

原文:http://blog.csdn.net/zyz511919766/article/details/39580127

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!