有没有一种方法可以通过使用preventDefault
停止更改选择标签值。我可以使用event.preventDefault
来防止输入更改值但无法阻止select标记更改值。
这里是示例代码:
document.getElementById('my-select').addEventListener('select', function(event) {
event.preventDefault()
});
document.getElementById('my-input').addEventListener('keypress', function(event) {
event.preventDefault()
});
<select id="my-select">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<input type="text" id="my-input">
选择事件监听器应该是'change'而不是.addEventListener('select'...
但是,为了调用preventDefault(),无法取消select HTML元素中的change事件。如果您记录事件对象,您将看到它的cancelable属性设置为false。也许可以将select元素设置为Disabled。