JavaScript使用firefox更改默认按钮概率

时间:2013-04-18 11:04:25

标签: javascript html postback onkeydown

以下问题:

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

现在我遇到了问题,当用户在文本框中按Enter键时,如果将调用列表而不是添加按钮,则会出现第一个按钮。 所以我在按钮的“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>

1 个答案:

答案 0 :(得分:0)

到处替换

type="submit"

type="button"

这样点击“输入”就不会提交表格。

但是整个计划很奇怪:你想提交表格吗?如果是这样,为什么不(通常)只有一个函数检查所有字段?