最近做一个form提交时,需要做一些数据校验,可是submit的onclick方法return false后,表单依然提交了。
错误写法:
<input type="submit" value="顺序提交" οnclick="x()"/>
正确写法:
<input type="submit" value="顺序提交" οnclick="return x()"/>
一定要注意方法要有return。
下面给出这个例子,并讨论了onclick,onsubmit,和submit()之间的关系。
示例代码:
<html>
<head>
<script type="text/javascript">
function formSubmit()
{
document.getElementById("myForm").submit()
}
function y() {
alert('y');
return false;
}
function x() {
alert('x');
return false;
}
</script>
</head>
<body>
<p>在下面的文本框中输入一些文本,然后点击提交按钮就可以提交表单。</p>
<form id="myForm" action="/i/eg_smile.gif" method="get" οnsubmit="return y()">
名:<input type="text" name="firstname" size="20"><br />
姓:<input type="text" name="lastname" size="20"><br />
<br />
<input type="button" οnclick="formSubmit()" value="直接提交">
<input type="submit" value="顺序提交" οnclick="return x()"/>
</form>
</body>
</html>
效果图:
分析:
当点击直接提交时,表单执行form.submit()函数,当点击顺序条件时,会依次执行x()函数,如果x()函数返回false,则终止,如果返回true,则会触发form表单的onsubmit属性,当y()函数返回true时,表单才会提交,否则表单也不会提交。
其他参考地址:
http://www.6zou.net/tech/form_onclick_onsubmit_submit.html