onclick="return checkForm()" 什么情况下加 "return"
<html>
? <head>
???? <script language="javascript">
??? function checkForm(){
????
??????? var username = document.getElementById("username").value;
??????? var password = document.getElementById("password").value;
??????? var dpassword = document.getElementById("dpassword").value;
???????
??????? if(username.length<6 || username.length>12){
???????????? alert("提示:\n\n用户名称必须大于6位,小于12位!");
???????????? document.getElementById("username").value = "";
???????????? document.getElementById("username").focus();
???????????? return false;
??????? }
???????
??????? if(password.length<6 || password.length>12){
???????????? alert("提示:\n\n密码必须大于6位,小于12位!");
???????????? document.getElementById("password").value = "";
???????????? document.getElementById("password").focus();
???????????? return false;
??????? }
??????? if(dpassword.length<6 || dpassword.length>12){
???????????? alert("提示:\n\n密码必须大于6位,小于12位!");
???????????? document.getElementById("dpassword").value = "";
???????????? document.getElementById("dpassword").focus();
???????????? return false;
??????? }
??????? if(password != dpassword){
????????????? alert("提示:\n\n两次输入的密码不同!");
????????????? return false;
??????? }
??? }
?</script>
? </head>
?
? <body>
?<form action="RegisterServlet" method="post">
???? <div name="username"/>
???? </div>
???? <div name="password" />
???? </div>
???? <div name="dpassword"/>
???? </div>
???? <div value="注册" onclick="return checkForm()"/>
????? <input type="reset" value="清空"/>
???? </div>
??? </form>
???
? </body>
</html>
为什么onclick中要加上return才能判断成功 才不会继续运行下去。
当直接写onclick="checkForm()" 注册时有错误提示,还是会继续提交给服务器。
解答如下,
JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。
而该值决定了当前操作是否继续。
当返回的是true时,将继续操作。
当返回是false时,将中断操作。
而直接执行时(不用return)。将不会对window.event.returnvalue进行设置
所以会默认地继续执行操作
详细说明如下:
例如:
当在 <a href="abc.htm" onclick="return add_onclick()">Open</a> 中
如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm
否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到 abc.htm除外
)
而 <a href="abc.htm" onclick="add_onclick()">Open</a>
不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm