首先,請各位包涵,我本人對 JS 不是很熟,不知道“觸發change事件”和“觸發onchange事件”哪個更加合適。有園友知道的麻煩指出,先行謝過。
起因是這樣的,工作上需要在瀏覽器頁面上配置一些信息,同時需要配置的有好幾百個。具體是需要在一個 HTML 的input
輸入框里面輸入自己需要的文本,然后保存。而這個input
框(猜測,因為頁面不是我寫的)是綁定了一個onchange
事件的,當其中的內容修改后,這個事件會觸發,然后保存才會生效。而如果直接用 JS 來給這個input
框賦值的話,這個onchange
事件是不會觸發的。
於是我上網找了好久,有說用trigger("change")
來觸發的,但我試了並不行。更無奈的是,網上絕大部分文章都是在說,如果去綁定這個onchange
事件,而我要的是觸發,而且問了好幾個技術群里的朋友,幾乎所有人都覺得我是在問如何綁定這個事件,最終寫了個示例演示出來才能給他們說清楚。
今天不得已之下,到 Google 搜索了一下,在 StackOverflow 上找到了方法。原理是要先創建並初始化一個 change 事件,然后再用 dispatchEvent 去觸發。代碼如下:
var event = document.createEvent("HTMLEvents");
event.initEvent("change", true, true);
document.querySelector("#id").dispatchEvent(event);
參考:
https://stackoverflow.com/questions/2490825/how-to-trigger-event-in-javascript
http://www.w3school.com.cn/jsref/event_initevent.asp