[英]Referencing the document scope from a Javascript Event Handler
我在表單控件(輸入類型-編號)上有一個非常簡單的事件處理程序(更改),我想根據輸入的值做一些工作。 使用'this'關鍵字非常有效。
當我嘗試同時檢查另一個控件(另一個輸入類型-編號)的值時,我遇到了范圍問題。 我知道這是一個范圍問題,但我只是想不通如何從第一個控件的事件處理程序中引用第二個控件。
例如
if (this.value) != "" { do something }
效果很好,但是;
if (this.value != "" && document.getElementById("someothercontrol").value) != "") { do something else }
失敗 正如我所指出的,我意識到這個文檔對象超出了范圍,但是我不知道引用它的語法(我想有辦法)。
只需將對輸入元素的引用保存在更高的范圍內,這是一個示例:
const inputs = document.querySelectorAll('input'); const input1 = document.getElementById('input1'); const input2 = document.getElementById('input2'); for (let input of inputs) { input.addEventListener('change', () => { console.log(input1.value); console.log(input2.value); }) }
<input id="input1" type="text"> <br> <input id="input2" type="text">
如果您不希望變量位於全局范圍內,則可以將其放在立即調用的函數表達式中:
(() => {
// your scoped code here
})()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.