【问题标题】:IE9, focus on input text box, but pressing enter will execute the first input button. I need it to stopIE9,专注于输入文本框,但按回车会执行第一个输入按钮。我需要它停止
【发布时间】:2011-11-26 11:23:54
【问题描述】:

我有一个网络应用程序,人们可以在其中搜索内容。在 IE9 中,焦点位于搜索输入元素上,但第一个按钮被突出显示,因此当有人按下 Enter 时,它始终会执行第一个按钮。

我不希望人们能够按回车并执行第一个按钮。

原因是有些人在输入搜索的输入文本框后倾向于按回车键,即使它是基于 keyup 事件的。

我尝试将其重新聚焦到搜索输入元素。我也尝试模糊按钮。它似乎不起作用。

有人知道解决办法吗?

感谢您的宝贵时间。

编辑: 我不想劫持回车按钮,因为如果有人实际上将焦点放在第一个按钮上并按回车怎么办?也许我可以检查一下?或者也许有更好的解决方案?

编辑 2:在这里发现了类似的问题Stopping IE from highlighting the first submit-button in a form 但解决这个问题的方法是 ASP。

编辑 3:

代码示例:

    <div >
        <label>ETTRN:<input type="text" id="search" maxlength="16" /></label>
        <input type="submit" value="Generate CSV" id="generate_csv" />
    </div>

【问题讨论】:

  • 这种情况只发生在 IE9 上,还是所有浏览器都发生这种情况?问题通常与表单上的默认操作有关。
  • @ryanOptini 代码非常庞大,在我看来这不是代码。我将尝试提出一个简单的示例代码 2morrow。我家没有 ie9 >___
  • @BlueFish 它不在表格中。只有IE9。我想我在某处读过 html5 声明表单中的第一个按钮总是突出显示?但我的不是形式。我专注于输入文本框,而第一个按钮有某种伪焦点。

标签: jquery internet-explorer-9


【解决方案1】:

将搜索框单独放在&lt;form&gt; 中。

<form action="javascript:void(null);" method="post">
    <input type="text" id="searchbox" />
</form>

这将(或至少应该)阻止 IE(或任何浏览器)将第一个按钮视为 Enter 键的操作。

【讨论】:

  • 这似乎合乎逻辑。我明天试试。再次感谢您。
【解决方案2】:

我想出了一个解决办法。

jQuery('*:focus').live('keydown', function(event) {
    if (event.keyCode == 13) {
        switch(jQuery(this).attr('id')) {
            case 'search' :
            case 'date-start':
            case 'date-end':
                event.preventDefault();
                return false;
        }
    }
});

我只关心焦点何时在用于搜索的文本输入元素上(即搜索、日期开始和日期结束)。因此,如果在按下某个键时这三个文本输入元素中的一个处于焦点,请检查它是否是 Enter 键 (13),如果是则禁用默认值。

感谢大家的帮助。

【讨论】:

  • 在 JQuery 1.8 ++ 版本中将 'live' 替换为 'on'
【解决方案3】:

问题与此处描述的文档类似:​​https://github.com/aleen42/PersonalWiki/issues/32#issuecomment-489966824

如果你想解决问题,可以改用keypresskeydown事件:

$('input.input-wrapper').on('keydown', e => { console.log(e.keyCode); });

或者用一个空的表单包裹输入元素:

<form action="javascript: void(0);">
    <input type="text" class="input-wrapper" value="" />
</form>
<button>test</button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多