Javascript 密码和确认密码don';不匹配
我有一个密码和确认密码字段,如下所示 我在另外两种不同的形式中使用了相同的元素和脚本,但在其中一种形式中它不起作用Javascript 密码和确认密码don';不匹配,javascript,html,html5-validation,Javascript,Html,Html5 Validation,我有一个密码和确认密码字段,如下所示 我在另外两种不同的形式中使用了相同的元素和脚本,但在其中一种形式中它不起作用 var password=document.getElementById('pwd'),confirm_password=document.getElementById('cpwd'); 函数validatePassword(){ if(password.value!=确认密码.value){ 确认_password.setCustomValidity(“密码不匹配”); }否则
var password=document.getElementById('pwd'),confirm_password=document.getElementById('cpwd');
函数validatePassword(){
if(password.value!=确认密码.value){
确认_password.setCustomValidity(“密码不匹配”);
}否则{
确认密码。设置自定义有效性(“”);
}
}
password.onchange=validatePassword;
确认\u password.onkeyup=validatePassword代码>
所需密码*
确认密码*
我建议您不要使用keyup
或change
事件,而是收听输入
事件
发件人:
更改
或
元素的值时,将同步触发DOM输入
事件
var password=document.getElementById('pwd'),
确认密码=document.getElementById('cpwd');
函数validatePassword(){
if(password.value!==确认密码.value){
确认_password.setCustomValidity(“密码不匹配”);
}否则{
确认密码。设置自定义有效性(“”);
}
}
password.oninput=validatePassword;
确认\u password.oninput=validatePassword代码>
所需密码*
确认密码*
密码:
符合密码:
var password=document.getElementById('pwd');
确认密码=document.getElementById('cpwd');
函数validatePassword(){
if((确认密码.value!='')和&(密码.value!=确认密码.value)){
document.getElementById('errorMsg').innerHTML='Passwords'not Match';
}否则{
document.getElementById('errorMsg')。innerHTML='';
}
}
password.onchange=validatePassword;
确认\u password.onkeyup=validatePassword;
显然,这只是剩余脚本中的一个类冲突,本身没有问题
抱歉给你添麻烦了
感谢您的所有努力。首先对两个psword进行修剪,然后进行验证。请详细说明“不起作用”。假设发生了什么以及实际发生了什么?旁白:使用inp.oninput
事件而不是key和change events验证只对页面中的一个表单有效,或者至少您有不同的类来获取值,或者您在页面中多次使用一个id。我有一个div,其中包含从具有相同表单输入类的数据库生成的多个表单,我遇到了相同的问题。我将代码更改为页面只有一个可见表单,其他表单则被隐藏。jquery不存在;t验证隐藏的输入值。当我移动到下一个表单时,我可以验证表单并隐藏它们。当您在确认\u密码中键入一个字符时,它是否匹配(例如“password1”
?那么可能是因为您调用了验证()
使用.onkeyup
,字符当时还没有实际输入到
中,所以值还没有更新。我认为这是JS中最简单的方法。
Password: <input id="pwd" name="pwd" type="password"><br><br>
Conform Password: <input id="cpwd" name="cpwd" type="password">
<div id="errorMsg"></div>
<script>
var password = document.getElementById('pwd');
confirm_password = document.getElementById('cpwd');
function validatePassword() {
if ((confirm_password.value!='')&&(password.value != confirm_password.value)) {
document.getElementById('errorMsg').innerHTML='Passwords Don\'t Match';
} else {
document.getElementById('errorMsg').innerHTML='';
}
}
password.onchange = validatePassword;
confirm_password.onkeyup = validatePassword;
</script>