我意识到还有其他关于 PreventDefault() 不适用于 Firefox 的问题,但它们对我没有帮助。
我有三个 SELECT 列表,我想要的只是使用箭头键在它们之间导航,而不更改任何值。该代码在 Chrome 中运行良好,但在 Firefox 中它会移动焦点,然后更改刚刚移动到的元素上的值。
http://jsbin.com/ofitif/3/edit
JavaScript:
$(document).ready(function () {
$('.myinput').keydown(function (evt) { onkeydown(evt); });
$('.myinput:first').focus();
});
function onkeydown(evt) {
evt.preventDefault();
console.log(evt.which);
if(evt.which == 39) {
$(document.activeElement).next().focus();
}
else if(evt.which == 37) {
$(document.activeElement).prev().focus();
}
}
HTML:
<div id="inputs">
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
最佳答案
http://mxr.mozilla.org/mozilla-central/source/layout/forms/nsListControlFrame.cpp 中的
nsListControlFrame::KeyPress
似乎没有检查默认操作是否被阻止。提交错误?
关于jquery - PreventDefault() 不适用于 Firefox 9.0.1 中的 SELECT 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8870037/