【发布时间】:2013-06-14 05:53:00
【问题描述】:
我正在使用一种表单,在该表单中我从用户那里获取密码输入,然后 javascript 检查密码是否匹配。但是即使需要密码,如果输入框为空,表单也会被提交。我正在使用 javascript 提交表单。虽然我有解决问题的方法,但我想问为什么会这样,而不是Please fill in this field 的正常操作,这样做时通常会出现。
HTML-
<form action="check.php" method="POST" id="userform">
USERNAME:<input name="uname" type="text" required/>
PASSWORD:<input type="password" id="upass" name="upass" type="text" required/>
RETYPE PASSWORD:<input type="password" id="reupass" name="reupass" type="text" required/>
<input type="button" value="Submit" onclick="passCheck()">
</form>
JavaScript-
function passCheck(){
var pass1 = document.getElementById('upass').value;
var pass2 = document.getElementById('reupass').value;
if(pass1 == pass2){
document.getElementById('userform').submit();
}
else{
alert("Both password inputs do not match. Please retry.");
document.getElementById('userform').reset();
}
}
编辑- 我希望当我单击按钮并且密码字段留空时应该出现这个:http://i.stack.imgur.com/cGuCK.jpg
【问题讨论】:
-
不要把监听器放在提交按钮上,把它放在表单的提交处理程序上。可以通过多种方式提交表单,而无需单击提交按钮。此外,您可以将表单引用为
document.forms.userform。最后,不能因为用户犯错就重置表单,让他们自己修复吧。 -
此外,您仍需要验证服务器端的值。您不能依赖 JavaScript 验证,因为它可以被关闭或从浏览器外部发送表单值。
标签: javascript html