Javascript 为什么密码字段验证不起作用?
我是网络编程新手,你能告诉我下面的代码有什么问题吗Javascript 为什么密码字段验证不起作用?,javascript,Javascript,我是网络编程新手,你能告诉我下面的代码有什么问题吗 <!doctype html> <html> <head> <title>Form Validation</title> <script type="text/javascript"> function validate (form) { // valriable declaration var returnValue = t
<!doctype html>
<html>
<head>
<title>Form Validation</title>
<script type="text/javascript">
function validate (form) {
// valriable declaration
var returnValue = true;
var username = form.txtUserName.value;
var password1 = form.txtPassword.value;
var password2 = form.txtPassword2.value;
// check for UserName length
if (username.length < 6) {
returnValue = false;
alert("Your username must be at least\n6 characters long.\nPlease try again.");
frmRegister.txtUserName.focus();
};
// check for password length
if (password1.length < 6) {
returnValue = false;
alert("Your password must be at least\n6 characters long.\nPlease try again.");
frmRegister.txtPassword.value = "";
frmRegister.txtPassword2.value = "";
frmRegister.txtPassword.focus();
};
// check for match of password field
if (password1.value != password2.value) {
returnValue = false;
alert("Your password entries did not match.\nPlease try again.");
frmRegister.txtPassword.value = "";
frmRegister.txtPassword2.value = "";
frmRegister.txtPassword.focus();
};
return returnValue;
}
</script>
</head>
<body>
<form method="post" name="frmRegister" action="register.html" onsubmit="return validate(this);">
<div><label for="txtUsername">UserName : </label>
<input type="text" name="txtUserName" id="txtUserName" size="12" />
</div>
<div><label for="txtPassword">Password : </label>
<input type="text" name="txtPassword" id="txtPassword" size="12" />
</div>
<div>
<label for="txtPassword2">Confirm your password : </label>
<input type="text" name="txtPassword2" id="txtPassword2" size="12" />
</div>
<div>
<input type="submit" value="Log in" />
</div>
</form>
</body>
</html>
表单验证
函数验证(表单){
//价值宣言
var返回值=真;
var username=form.txtUserName.value;
var password1=form.txtPassword.value;
var password2=form.txtPassword2.value;
//检查用户名长度
如果(username.length<6){
returnValue=false;
警报(“您的用户名必须至少\n6个字符。\n请重试。”);
frmRegister.txtUserName.focus();
};
//检查密码长度
if(password1.length<6){
returnValue=false;
警报(“您的密码必须至少\n6个字符。\n请重试。”);
frmRegister.txtPassword.value=“”;
frmRegister.txtPassword2.value=“”;
frmRegister.txtPassword.focus();
};
//检查密码字段是否匹配
if(password1.value!=password2.value){
returnValue=false;
警报(“您的密码输入不匹配。\n请重试。”);
frmRegister.txtPassword.value=“”;
frmRegister.txtPassword2.value=“”;
frmRegister.txtPassword.focus();
};
返回值;
}
用户名:
密码:
确认您的密码:
首先,使用事件处理程序的返回停止。
将代码转换为
将函数更改为验证(事件、表单)
您认为不应提交表格的任何地方。。
写:
event.preventDefault()
而不是返回false
演示:
你希望我们读到这篇文章吗?当你说它不起作用时,它在做什么,你希望它做什么?你应该编写你的代码,并在这里放一个实例。它检查用户名长度和密码长度是否相等。是的,这一部分很清楚,但是错误是什么?你能给我举个简单的例子吗?我是javascript新手。已在答案中添加了感谢说明链接。。请参见“谢谢”,这里的事件代表什么?为什么不检查两个密码字段是否匹配。就像我在第一个密码框中输入密码,而第二个密码框为空,它仍然会被提交。如何停止此操作?
var password1=form.txtPassword.value;var password2=form.txtPassword2.value代码>因为你把密码1.value!=password2.value
,password1
和password2
是字符串,字符串没有value
属性<代码>事件
是事件对象。阅读