我意识到有其他问题,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>
解决方法
nsListControlFrame :: KeyPress在
http://mxr.mozilla.org/mozilla-central/source/layout/forms/nsListControlFrame.cpp似乎不检查默认动作是否被阻止.提出错误?