无法在<select>上通过Firefox阻止默认

Tra*_*ant 8 javascript firefox jquery

试图阻止在Firefox上确定一个keydown事件,<select>但它不起作用.

任何解决方法?

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

看到这里的代码:

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

<select id="select">
    <option value="1">Monday</option>
    <option value="2">Tuesday</option>
    <option value="3">Wednesday</option>
    <option value="4">Thursday</option>
    <option value="5">Friday</option>
    <option value="6">Saturday</option>
    <option value="7">Sunday</option>
</select>

$(document).ready(function() {

    $("#select").keydown(function (event) {
        event.preventDefault();
        event.stopPropagation();        
    });         
});
Run Code Online (Sandbox Code Playgroud)

dan*_*oon 1

这似乎在 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();

    });         
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle

  • 这似乎是一个已有 7 年多历史的错误:https://bugzilla.mozilla.org/show_bug.cgi?id=291082。您可能会使用元素克隆和绝对定位以及一些全面的 JS 技巧来给人一种它正在工作的错觉。 (2认同)