我写了一个Chrome扩展程序,可以自动填写一些注册表单.在“change”事件中需要触发一些选择字段才能启动一些Ajax调用.
首先,我使用JQuery attr或val来更改select字段的值,而不是使用.trigger来调用“change”事件,但最后一个不起作用.
例:
I want to select the option that contains the word “London” and invoke
the change element in order to start some operations of the native
code that have some listeners on “change” event
jQuery("#SelectElement option:contains('London')").attr("selected","selected"); jQuery("#SelectElement").trigger("change"); <--- not works
我也尝试过:
jQuery("#SelectElement option:containt('London')").attr("selected","selected").change();
但是,如果我在控制台上尝试此代码,它的工作原理.
建议?
解决方法
就我而言,
var event = new CustomEvent('change');
不工作.
我必须像这样初始化事件:
var evt = document.createEvent("HTMLEvents"); evt.initEvent("keyup",true,true);
第一个arg’bubbles’应该是真的,所以事件应该在事件链中冒出来.
event.initEvent(type,bubbles,cancelable);
资源:
https://developer.mozilla.org/en-US/docs/Web/API/Event/initEvent