以下问题:
我有一个带按钮的列表,然后是一个带有按钮的文本框,用于添加新条目。 在两者中,列表按钮和添加按钮都是用于确认操作的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>
答案 0 :(得分:0)
到处替换
type="submit"
与
type="button"
这样点击“输入”就不会提交表格。
但是整个计划很奇怪:你想提交表格吗?如果是这样,为什么不(通常)只有一个函数检查所有字段?