在 HTML 中使用 Javascript 检查密码
Checking passwords using Javascript in HTML
这是 'Signup' html 页面的一些代码;我无法让它检查两个密码是否匹配。如果他们不匹配,我需要一个弹出框来显示 "try again";如果他们做数学,页面可以正常继续(sumbit 按钮转到我网站的主页)。
谢谢!!!我在底部附近写了一个 javascript 函数....
<form class="form-horizontal" role="form" method="post" action="index.php">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value="">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Create a password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password1" name="password" placeholder="Your Password Here" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Confirm password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password2" name="password" placeholder="Confirm Password" value="">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<input id="submit" name="signup" type="submit" value="Sign Up" class="btn btn-primary" onclick="checkPassword()">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<! Will be used to display an alert to the user>
<script>
function checkPassword{
var1 = document.getElementById("password1");
var2 = document.getElementById("password2");
var n = var1.localeCompare(var2)
if(n == 0){
return true;
alert("Passwords do not match, please try again!");
}
return false;
}
</script>
</div>
</div>
</form>
从提交标签中删除 onclick="checkPassword()"
并在表单标签中添加
onsubmit="return checkPassword()"
var1 = document.getElementById("password1").value;
var2 = document.getElementById("password2").value;
另外 n===0 意味着,它在 return 语句之后匹配和警告将不起作用。
您比较的是元素,而不是值。从元素中获取值:
var1 = document.getElementById("password1").value;
var2 = document.getElementById("password2").value;
Return false 如果要停止提交,在调用return
之前显示消息。 localeCompare
方法 returns 如果字符串不同则为非零值:
if(n != 0){
alert("Passwords do not match, please try again!");
return false;
}
return true;
不要在按钮上使用 click
事件,而是在表单上使用 submit
事件:
<form class="form-horizontal" role="form" method="post" action="index.php" onsubmit="return checkPassword();">
首先用 return 和警报切换行。
var pw1 = document.getElementById("password1").value;
var pw2 = document.getElementById("password2").value;
if( pw1 !== pw2 )
{
alert("Passwords do not match, please try again!");
return true;
}
我从输入元素中取出值并将它们与 !== 进行比较。也就是说,两个变量的类型必须相等,文本也必须不相等。
稍微更改了您的代码:
<form class="form-horizontal" role="form" method="post" onsubmit="return checkPassword();" action="index.php">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value="">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Create a password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password1" name="password" placeholder="Your Password Here" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Confirm password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password2" name="password" placeholder="Confirm Password" value="">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<input id="submit" name="signup" type="submit" value="Sign Up" class="btn btn-primary" >
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
</div>
</div>
</form>
<script>
function checkPassword(){
var1 = document.getElementById("password1");
var2 = document.getElementById("password2");
if(var1.value != var2.value){
alert("Passwords do not match, please try again!");
return false;
}
else{
return true;
}
}
</script>
请注意您的表单标签有 onsubmit 事件,它会调用您的 javascript 函数(不是提交按钮),如果密码不匹配,您可以通过这种方式停止提交表单。同样在您的 javascript 函数中,请注意我在返回 false 和修改代码以比较元素值而不是元素之前如何显示警报。此代码已经过测试并有效。
这是 'Signup' html 页面的一些代码;我无法让它检查两个密码是否匹配。如果他们不匹配,我需要一个弹出框来显示 "try again";如果他们做数学,页面可以正常继续(sumbit 按钮转到我网站的主页)。
谢谢!!!我在底部附近写了一个 javascript 函数....
<form class="form-horizontal" role="form" method="post" action="index.php">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value="">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Create a password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password1" name="password" placeholder="Your Password Here" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Confirm password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password2" name="password" placeholder="Confirm Password" value="">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<input id="submit" name="signup" type="submit" value="Sign Up" class="btn btn-primary" onclick="checkPassword()">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<! Will be used to display an alert to the user>
<script>
function checkPassword{
var1 = document.getElementById("password1");
var2 = document.getElementById("password2");
var n = var1.localeCompare(var2)
if(n == 0){
return true;
alert("Passwords do not match, please try again!");
}
return false;
}
</script>
</div>
</div>
</form>
从提交标签中删除 onclick="checkPassword()"
并在表单标签中添加
onsubmit="return checkPassword()"
var1 = document.getElementById("password1").value;
var2 = document.getElementById("password2").value;
另外 n===0 意味着,它在 return 语句之后匹配和警告将不起作用。
您比较的是元素,而不是值。从元素中获取值:
var1 = document.getElementById("password1").value;
var2 = document.getElementById("password2").value;
Return false 如果要停止提交,在调用return
之前显示消息。 localeCompare
方法 returns 如果字符串不同则为非零值:
if(n != 0){
alert("Passwords do not match, please try again!");
return false;
}
return true;
不要在按钮上使用 click
事件,而是在表单上使用 submit
事件:
<form class="form-horizontal" role="form" method="post" action="index.php" onsubmit="return checkPassword();">
首先用 return 和警报切换行。
var pw1 = document.getElementById("password1").value;
var pw2 = document.getElementById("password2").value;
if( pw1 !== pw2 )
{
alert("Passwords do not match, please try again!");
return true;
}
我从输入元素中取出值并将它们与 !== 进行比较。也就是说,两个变量的类型必须相等,文本也必须不相等。
稍微更改了您的代码:
<form class="form-horizontal" role="form" method="post" onsubmit="return checkPassword();" action="index.php">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value="">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Create a password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password1" name="password" placeholder="Your Password Here" value="">
</div>
</div>
<div class="form-group">
<label for="password" class="col-sm-2 control-label">Confirm password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="password2" name="password" placeholder="Confirm Password" value="">
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<input id="submit" name="signup" type="submit" value="Sign Up" class="btn btn-primary" >
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
</div>
</div>
</form>
<script>
function checkPassword(){
var1 = document.getElementById("password1");
var2 = document.getElementById("password2");
if(var1.value != var2.value){
alert("Passwords do not match, please try again!");
return false;
}
else{
return true;
}
}
</script>
请注意您的表单标签有 onsubmit 事件,它会调用您的 javascript 函数(不是提交按钮),如果密码不匹配,您可以通过这种方式停止提交表单。同样在您的 javascript 函数中,请注意我在返回 false 和修改代码以比较元素值而不是元素之前如何显示警报。此代码已经过测试并有效。