【问题标题】:JavaScript Change default button prob with firefoxJavaScript 使用 firefox 更改默认按钮概率
【发布时间】:2013-04-18 11:04:25
【问题描述】:

以下问题:

我有一个带有按钮的列表,然后是一个带有按钮的文本框,用于添加新条目。 在这两者中,列表按钮和添加按钮都是用于确认操作的 JavaScript 例程。

现在我遇到的问题是,当用户在文本框中按下回车键时,将调用列表的第一个按钮而不是添加按钮。 所以我在按钮的“onkeydown”事件中添加了JavaScript,在这里我使用了“return false;”。以避免在我检查返回按钮被按下后调用第一个按钮。 这与以下行完美配合: onkeydown="if (event.which == 13) { return false; }" 但只要我在“return false;”之前添加任何 JavaScript 代码; (我需要一个确认消息和其他一些 JavaScript 例程),Firefox 浏览器确实调用了第一个按钮和 onkeydown 事件中的 javascript 代码...... 此行为似乎不会在 Internet Explorer 上发生。

我已经尝试了几个小时来寻找解决方案,但我找不到,我也无法在互联网上找到正确的提示。 所以如果有人可以帮助我解决这个问题,我会很高兴?

我尝试构建一个代码示例,每个人都可以在其中重现错误行为。 在最后一个输入控件中,我添加了 onkeydown 事件。 有人能告诉我为什么当我在文本输入字段中按 Enter 按钮时,Firefox 会显示第一个按钮的确认消息吗?

<html>
<head>
</head>
<body>
    <form method="post" action="Test.html" id="ctl00">
    <div id="divTest">
        <table>
            <tr>
                <td>
                    Testline 1
                </td>
                <td>
                    <input type="submit" onclick="if (confirm('Sure?')) alert('the wrong postback'); else return false;" value="Test1" />
                </td>
            </tr>
            <tr>
                <td>
                    Testline 2
                </td>
                <td>
                    <input type="submit" onclick="if (confirm('Sure?')) alert('the wrong postback'); else return false;" value="Test2" />
                </td>
            </tr>
        </table>
    </div>
    <table>
        <tr>
            <td>
                Enter name:
            </td>
            <td>
                <input type="text" size="30" onkeydown="if (event.which == 13) { alert('test'); return false; }" />
            </td>
            <td>
                <input type="submit" title="Add it" onclick="alert('the correct postback')" />
            </td>
        </tr>
    </table>
    </form>
</body>

【问题讨论】:

    标签: javascript html postback onkeydown


    【解决方案1】:

    到处替换

    type="submit"
    

    type="button"
    

    所以点击“输入”不会提交表单。

    但整个方案很奇怪:你要不要提交表单?如果是这样,为什么不(像往常一样)只有一个函数检查所有字段?

    【讨论】:

    • 是的,我想提交表单,因为我有一个右侧带有删除按钮的“网格”,我需要一个“回发”,因为我使用的是 ASP.Net ,我想在其中提出一个事件。
    • 另一个按钮“添加它”(在我的应用程序中“添加电子邮件”)位于网格下方(网格位于面板内),其中我有一行可以向网格添加新条目,并且我希望将“添加”按钮作为文本输入字段的默认按钮,可以在其中输入新名称。但是感谢“type = button”的提示..也许这可以给我一些提示..但无论如何:我认为我现在有解决方案,使用“onkeypress”事件而不是“onkeydown”..这似乎工作得更好..不是在所有情况下,但更好:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2016-03-22
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    相关资源
    最近更新 更多