preventDefault()不能处理Firefox 9.0.1中的SELECT元素

我意识到还有其他一些关于preventDefault()无法使用Firefox的问题,但是他们没有帮助我。

我有三个SELECT列表,我想要的是使用箭头键在它们之间导航而不更改任何值 。 该代码在Chrome中运行良好,但在Firefox中,它会移动焦点,然后更改刚刚移动到的元素的值。

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:

 
One Two Three One Two Three One Two Three

http://mxr.mozilla.org/mozilla-central/source/layout/forms/nsListControlFrame.cpp中的nsListControlFrame::KeyPress似乎无法检查是否阻止了默认操作。 提交错误?

根据你的要求尝试传递值以防止默认..这将是如下所示..

 evt.preventDefault ? evt.preventDefault() : evt.returnValue = false; 

它对我有用PLZ试试吧……

从你的keydown处理程序返回false

 $('.myinput').keydown(function (evt) { onkeydown(evt); return false; });