在JS中使用keypress()时禁用Firefox自动搜索

时间:2014-06-09 14:30:23

标签: javascript jquery keypress

问题:

我正在运行一个功能,您可以使用keypress()功能按C或M键,每次按其中一个键时,都会在Firefox中自动标记该字母。有没有办法使用JavaScript禁用它,或者这是Firefox默认执行的操作?

我曾尝试使用Google寻找答案,但似乎在使用JS中的keypress()函数之前没有人遇到此问题。

代码:

<script type="text/javascript">         
    $(document).ready(function()
    {
        var once = false;
        $(window).keypress(function(e)
        {
            if(!once)
            {
                if (e.which == 99)
                {
                    once = true;
                    $("input#left").val( 1 );
                    $("form").submit();
                }
                else if (e.which == 109)
                {
                    once = true;
                    $("input#right").val( 1 );
                    $("form").submit();
                }
            }
        });                 
    });
</script>

提前感谢任何提示!

2 个答案:

答案 0 :(得分:1)

只需调用preventDefault():

$(window).keypress(function(e)
{
    e.preventDefault()
    // other code
}

答案 1 :(得分:0)

有几种方法可以解决这个问题。如果您致电e.preventDefault(),您应该受到保障,但这不是您唯一的选择。

HTML5在标记中引入了许多新标记和属性,其中一个是文本字段的autocomplete属性。如果您将其添加到HTML(<input type='text' id='myInput' autocomplete='off'>),也应该包含在内。您无法始终依赖您的用户支持HTML5,但这仍然是解决您问题的简单方法。

在您的代码中实现这两个小的更改可能会让您受到伤害。