无法在上通过Firefox阻止默认

尝试在上阻止在Firefox中删除keydown事件,但它不起作用。

任何解决方法?

曾经有一些甚至IE处理的东西,但Firefox没有!

看到这里的代码:

http://jsfiddle.net/p8FNv/1/

  Monday Tuesday Wednesday Thursday Friday Saturday Sunday  $(document).ready(function() { $("#select").keydown(function (event) { event.preventDefault(); event.stopPropagation(); }); }); 

这不是很优雅,但有效:

 $("select").keydown(function(e){ e.preventDefault(); var elem = this; elem.disabled=true; setTimeout(function() { elem.disabled = false; }, 0); }); 

一声问候。

这似乎在Firefox 19上对我有用。我假设你的意图是当用户键入值时阻止选择值通过键盘输入进行更改。

 $(document).ready(function() { var valueToKeep; $("#select").keypress(function (event) { $(this).val(valueToKeep); }); $("#select").keydown(function (event) { event.preventDefault(); event.stopPropagation(); valueToKeep = $(this).val(); }); }); 

的jsfiddle

我假设您在按键时不希望选择其他选项。 我相信这是特定于浏览器的实现,并不会触发事件。 您可能需要做的是使用常规元素和jquery构建您自己的选择模仿。 这可能变得非常复杂,取决于你想要获得多么疯狂,但这是一个小小的开始。

HTML:

 

CSS:

 .imitateSelect div{ display:none; } 

JS:

 $('.imitateSelect div').first().show(); $('.imitateSelect div').on('click', function(){ $(this).siblings().slideDown(); }); 

等等

另一种选择是使用像Chosen这样的插件。 看看他们做了什么。 如果您删除输入栏,您将获得选择function,并且按键不会更改所选选项。

关于keydown的选择更改,尝试添加实体­ ( 软连字符 )标签前。

这可能不是最优雅的解决方案,但它可以解决问题。