我使用html輸入標記從用戶處獲取文本。當用戶在輸入元素中輸入一個字符時,我想要輸入他們剛輸入的文本;它看起來像我是每個字母console.log
ing。我試圖通過在input
標記上添加'change'
的事件偵聽器。如何更改輸入標記對addEventListener('change')的響應?
爲了證明我的意思,我在下面的代碼簡化我的問題......
<input type="text" id='userInput' placeholder='enter characters here'/>
在JS腳本:
text = document.getElementById('userInput'); text.addEventListener('change', function() { console.log('hello world'); });
我選擇了'change'
事件,因爲我認爲將文字輸入input
標籤元素將等同於更改該元素,以便每當用戶輸入input
元素t,它記錄'你好世界'。
但是,input
元素的'change'
事件並非我所期望的。實際上發生的事情是,只有當您在input
元素內敲入'enter'時,纔會記錄'hello world'(即div的'change'
事件看起來可能與按鈕的'change'
事件不同)。
我一直在嘗試這種螢火蟲之內,而我在MDN看addEventListener
和change
文件,並已閱讀了變化事件監聽各種標籤不同。
有誰知道一個辦法修改input
變化事件addEventListener
登記實際文本的變化,不僅只是當有人點擊進入裏面input
?
否則
如果我不能爲input
指定'change'
事件,沒有人知道的另一種方式來console.log
每個字符,因爲它是輸入到input
?
嘗試'onchange'而不是'change' – Abbath 2014-11-24 06:16:13
@Abbath - Nope。如果你添加事件處理程序內聯,在HTML中,然後'onchange'是正確的。但是,如果使用JS添加事件,則「更改」是適當的。即:''input onchange ='someFunc()'/>'_or_''帶有一些額外的js:'document.getElementById('someId')。addEventListener('change',someFunc,假);' - 後一種方法由於多種原因是可取的。 – enhzflep 2014-11-24 06:19:49