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