JS模拟select点击,触发change事件
适配IE浏览器
这个问题困扰一时,搜了很久的答案,都是千篇一律,试了很多方法都不行,后来偶然尝试后,就解决了,现在记录一下:
- 原生JavaScript:
chrome和firefox下使用
,即可实现change事件的触发(例如选择某一项下拉值,然后触发刷新表格);select.dispatchEvent(new Event('change'))
IE浏览器不支持,解决方式如下:var evt = document.createEvent("HTMLEvents"); evt.initEvent("input", false, true);
- chrome和firefox例子:
// 举例: var select = document.getElementsByClassName('select-panel')[0]; //select.options[0].value=999; //select.options[0].innerText=999; //选择select现行选择项,当前例子为第一个选项 select.options[0].selected = true; //触发选择事件 select.dispatchEvent(new Event('change'))
IE浏览器例子:
// 举例: var select = document.getElementsByClassName('select-panel')[0]; //select.options[0].value=999; //select.options[0].innerText=999; //选择select现行选择项,当前例子为第一个选项 select.options[0].selected = true; //触发选择事件 var evt = document.createEvent("HTMLEvents"); evt.initEvent("change", false, true); select.dispatchEvent(evt);