beforeinput
的MDN page表示:
当
<input>
、<select>
或<textarea>
元素的值即将修改时,将触发DOM beforeinput事件
<select>
被明确提到支持beforeinput
活动.
根据我对the spec的简单解读,这似乎也是真的:
受信任的目标:Element (specifically: control types such as HTMLInputElement, etc.)或启用contenteditable属性的任何元素
(重点矿山)
然而,似乎没有浏览器能够实现它.我已经判断了Chrome、Safari和Firefox.
我是否理解错误?
const sel = document.getElementById('pet-select')
sel.addEventListener('beforeinput', () => console.log('beforeinput!'))
sel.addEventListener('input', () => console.log('input!'))
<label for="pet-select">Choose a pet:</label>
<select name="pets" id="pet-select">
<option value="">--Please choose an option--</option>
<option value="dog">Dog</option>
<option value="cat">Cat</option>
<option value="hamster">Hamster</option>
<option value="parrot">Parrot</option>
<option value="spider">Spider</option>
<option value="goldfish">Goldfish</option>
</select>