首页 新闻 会员 周边 捐助

js不能触发change事件

0
悬赏园豆:30 [已解决问题] 解决于 2024-07-11 09:08

是这样,有一个页面,是三个下拉框三级联动,如果手动选择省,市可以联动,但如果我在IE的控制台里直接给省的下拉框赋值(用jquery,因为页面上有jquery),比如:
$('#province').val('100000');
市的那个下拉框并不会显示成为北京市的下级,但如果我是手动选择的,就可以触发,有人知道这是怎么回事吗?

ps:
说下背景,这页面不是我们的,但我需要在无侵入的情况下,给这省市区赋值。

顾晓北的主页 顾晓北 | 专家六级 | 园豆:10898
提问于:2021-11-16 09:09
< >
分享
最佳答案
1

let evt = document.createEvent('HTMLEvents');
evt.initEvent('change', false, true);//页面的下拉框change事件
select.dispatchEvent(evt);//select是下拉框元素

收获园豆:10
新* | 菜鸟二级 |园豆:271 | 2021-11-16 09:20

昨天其实想这么干试试。。。

顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 09:30

@顾晓北: 这个支持是 $('#digg_1648310').val('100000').trigger('click');

人间春风意 | 园豆:2784 (老鸟四级) | 2021-11-16 15:42
其他回答(4)
1

$('#province').val('100000').trigger('change');

收获园豆:5
仰望繁星的猪 | 园豆:519 (小虾三级) | 2021-11-16 09:51

不行,昨天试过了。。。
那里面的jquery是3.4.1,我很久没关注过jquery,我印象中从什么版本开始,这个事件的绑定方式确实不一样了?

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 10:00

@顾晓北: 试着把100000这种value值,加个字母前缀,100000可能会被当成数字来处理了。

支持(0) 反对(0) 仰望繁星的猪 | 园豆:519 (小虾三级) | 2021-11-16 10:03

@仰望繁星的猪: 不是的,跟这个无关,楼上的方式似乎可以,还在验证。。。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 10:12
0

你可以把页面给出来 话说你是在写油猴吗

收获园豆:5
蓝羽code | 园豆:318 (菜鸟二级) | 2021-11-16 10:40

页面给不出来,页面应该是固定某些ip才能访问,我也是远程上去的。。。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 10:49
0

$('#province').val('100000').change() 可以试试

收获园豆:5
丿如何是好 | 园豆:213 (菜鸟二级) | 2021-11-16 14:57

好的,谢谢,我试试

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 15:07
0

我的经验是trigger是触发不了事件的,比如$("input[type='button']").tigger("click")不行,但用$("input[type='button']")[0].click()却可以

收获园豆:5
空明流光 | 园豆:111 (初学一级) | 2021-11-16 14:58

你这个区别看起来前面是不止一个button啊

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2021-11-16 15:07

@顾晓北: 管它几个呢,好使就行,这只是一个虚构的例子而已

支持(0) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2021-11-16 15:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册