转载
问题描述:应用中的一个表单回车后会提交,但不执行button中的onclick,需要禁用回车提交。
产生原因:在只有一个控件的FORM中,按回车会提交FORM。在这段程序中,会导致不执行button中的onclick中的JS代码,引起相应错误。
注意:多于一个控件,回车不会提交。
解决:
方法一:直接在form的onsubmit方法,因为是自己的方法,无论点击还是回车都会验证。
<form name="form1" id="form1" action="act.php" method="post"
onsubmit="myfn();return false;">
方法二:
<form id="phoneValidateForm" action="a.do" method="post">
在此输入验证码:
<input name="validateCode" id="validateCode" type="text" size="7" maxlength="6" onkeypress="if(event.keyCode==13||event.which==13){return false;}" >
<input type="button" value="验 证" onclick="js代码" />
</form>
注:因firefox里不支持event.keyCode,所以改成
onkeypress="if(event.keyCode==13||event.which==13){return false;}"实现。
firefox中用event.which捕获用户操作,而且不能设置值,只能取值,所以不能写event.which=0
方法三:
function KeyDown() {
// 当按下“回车键”时执行Submit事件
if (window.event.keyCode == 13){
document.getElementById("ic").onclick);
}
}
引用的地方:
<input name="ticket" id="ti" class="input1" size="4" onkeydown="KeyDown()" >
<img id="ic" src="<%=request.getContextPath()%>/images/pic025a.gif" width="62" height="22" onClick="return toform()"/>