我的目的:如果用户字段和密码字段为空,我想停止表单提交。
这是我正在尝试的代码:
<!DOCTYPE html>
<html>
<head>
<script>
function doit() {
var usr = document.getElementById('ur').value;
var psw = document.getElementById('pw').value;
if ((usr.trim() == '') && (psw.trim() == '')) {
alert("cannot Submit form");
return false;
}
}
</script>
</head>
<body>
<form action="post.php" method="post" onsubmit="doit()">
User:
<input type="text" id="ur" name="user">
<br>
<br> Pass:
<input type="password" id="pw" name="pass">
<br>
<br>
<button>Submit</button>
</form>
</body>
</html>
我正在学习 JavaScript。如果您更正代码并稍微解释一下为什么它不起作用,将会很有帮助。
return false
工作正常,就像你现在的样子calling该函数是错误的。
<form action="post.php" method="post" onsubmit="doit()">
只是调用它,不对返回值做任何事情
<form action="post.php" method="post" onsubmit="return doit()">
^
将停止表单发布错误的返回值。
阅读此说明MSDN https://msdn.microsoft.com/en-us/library/ie/ms536972(v=vs.85).aspx虽然它不是 IE 特定的
您可以通过在事件处理程序中返回 false 来覆盖此事件。使用此功能在客户端验证数据,以防止将无效数据提交到服务器。如果事件处理程序是由表单对象的 onsubmit 属性调用的,则代码必须使用 return 函数显式请求返回值,并且事件处理程序必须为事件处理函数中每个可能的代码路径提供显式返回值.
现在到另一个重要的点。
Your if
仅当两个字段都为空时,条件才会停止表单提交,而即使这两个字段中的任何一个字段为空,它也应该这样做。那&&
(AND) 应该是||
(或),并且在函数结束时如果没有返回 false,return true
then.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)