1

我有一个具有某些功能的输入类型文本。文本始终具有焦点,但同时文本可以更改。当您按下退出键时,应该关闭某些东西。我确实为此绑定了一个关键事件,它工作正常。我的问题是,在 Firefox 中,按转义键时文本总是会清除。你可以在这里测试它:

$('#asd').click(function() {
    $(this).val('huhu');
});

$('#asd').keydown(function(e) {
    if(e.which == 27) {
        e.preventDefault();
        return false;
    }
});

http://jsfiddle.net/hJ9th/1/

单击文本字段,然后按转义键。文字消失。我试图阻止它,但它不起作用。

我能做些什么来防止这种情况发生?

4

2 回答 2

1

超级脏,但我想我正在使用它:

$('#asd').click(function() {
    $(this).val('huhu');
});

$('#asd').keydown(function(e) {
    if(e.which == 27) {
        var $this = $(this);
        $this.blur();
        setTimeout(function() {
            $this.focus();
        }, 10);
    }
});

http://jsfiddle.net/hJ9th/2/

于 2013-05-15T12:04:16.147 回答
-1

这是 Firefox 中的内置行为。

如果你想阻止它,你需要附加一个 JS/jQuery 处理程序来拦截 keydown 事件,如果 keydown 为ESC.

一个例子是here

于 2013-05-15T00:24:20.340 回答