Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么密码字段验证不起作用?_Javascript - Fatal编程技术网

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
属性<代码>事件
是事件对象。阅读