0

以下问题:

我有一个带有按钮的列表,然后是一个带有按钮的文本框来添加新条目。在两者中,列表按钮和添加按钮都是用于确认操作的 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>

4

1 回答 1

0

到处更换

type="submit"

type="button"

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

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

于 2013-04-18T11:05:31.593 回答