Javascript 当我按enter键时触发两个事件
在我的代码中,头部分有以下javascript代码块Javascript 当我按enter键时触发两个事件,javascript,html,Javascript,Html,在我的代码中,头部分有以下javascript代码块 function validateForm(bid) { switch (bid) { case "submitIDSearch": alert("submitIDSearch"); return false; case "submitNameSearch": alert("submitNameSearch");
function validateForm(bid) {
switch (bid) {
case "submitIDSearch":
alert("submitIDSearch");
return false;
case "submitNameSearch":
alert("submitNameSearch");
return false;
}
}
function fKeyDown(e) {
var kc = window.event ? window.event.keyCode : e.which;
if (kc == 13) {
document.getElementById('submitNameSearch').click();
}
}
然后我有下面的HTML代码块
<form name="checkAbsenceForm" method="post" action="absenceReport.htm" onsubmit="return validateForm(this.submited)">
<label class="q">ID * <input id="searchRUID" name="searchID" maxlength="9" /></label>
<input id="submitIDSearch" type="submit" value="Search ID" onclick="this.form.submited = this.id;" />
<hr />
<label class="q">First Name <input id="searchFirstName" name="searchFirstName" maxlength="23" onKeyDown="javascript:fKeyDown(event);"/></label>
<br />
<label class="q">Last Name * <input id="searchLastName" name="searchLastName" maxlength="23" onKeyDown="javascript:fKeyDown(event);" /></label>
<input id="submitNameSearch" type="submit" value="Search Name" onclick="this.form.submited = this.id;" />
</form>
ID*
名字
姓氏*
当我在searchLastName
输入文本框中按Enter键时,两个警报消息框都会弹出。一个显示submitNameSearch
,另一个显示submitdisearch
submitNameSearch
是所需的事件,但是submitdisearch
不是,我认为它是默认触发的
请问,当我在searchLastName输入文本框中按Enter键时,是否有办法消除submitSearch
事件
非常感谢 在表单中按Enter键时,表单将被提交。这就是第二次调用validateForm
的原因
两种解决方案:
1)删除onKeyDown=“javascript:fKeyDown(事件);”
以在onsubmit=…
上定义正常验证
2)在fKeyDown
中,添加e.preventDefault()代码>防止默认处理密钥事件:
function fKeyDown(e) {
var kc = window.event ? window.event.keyCode : e.which;
if (kc == 13) {
document.getElementById('submitNameSearch').click();
e.preventDefault();
}
}
但是,如果您真的在fKeyDown
中这样做,解决方案1就足够了。在表单中按Enter键时,表单将被提交。这就是第二次调用validateForm
的原因
两种解决方案:
1)删除onKeyDown=“javascript:fKeyDown(事件);”
以在onsubmit=…
上定义正常验证
2)在fKeyDown
中,添加e.preventDefault()代码>防止默认处理密钥事件:
function fKeyDown(e) {
var kc = window.event ? window.event.keyCode : e.which;
if (kc == 13) {
document.getElementById('submitNameSearch').click();
e.preventDefault();
}
}
但如果您真的在fKeyDown
中这样做,解决方案1就足够了。谢谢。第二个解决方案正是我想要的。谢谢。第二个解决方案正是我想要的。