亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何手動觸發onchange事件?

如何手動觸發onchange事件?

達令說 2019-06-12 21:33:42
如何手動觸發onchange事件?我正在通過日歷小部件設置日期時間Textfield值。顯然,日歷部件執行如下操作:document.getElementById('datetimetext').value = date_value;我想要的是:在更改日期時文本字段中的值時,我需要重置頁面中的其他一些字段。我在datetimetext字段中添加了一個onchange事件偵聽器,該字段不會被觸發,因為我猜onchange僅在元素獲得焦點時才觸發&在失去焦點時更改其值。因此,我正在尋找一種手動觸發這個onchange事件(我猜應該檢查文本字段中的值差異)。有什么想法嗎?
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

有幾種方法你可以做到。如果onchange偵聽器是通過element.onchange屬性,并且您不必擔心事件對象或冒泡/傳播,最簡單的方法是只調用該函數:

element.onchange();

如果您需要它來完全模擬真實的事件,或者通過html屬性或addEventListener/attachEvent,您需要做一些特性檢測才能正確觸發事件:

if ("createEvent" in document) {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    element.dispatchEvent(evt);}else
    element.fireEvent("onchange");


查看完整回答
反對 回復 2019-06-12
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

MDN表明在現代瀏覽器中有一種更干凈的方法可以做到這一點:

// Assuming we're listening for e.g. a 'change' event on `element`// Create a new 'change' eventvar event = new Event('change');
// Dispatch it.element.dispatchEvent(event);


查看完整回答
反對 回復 2019-06-12
  • 3 回答
  • 0 關注
  • 2763 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號