Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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 密码和确认密码don';不匹配_Javascript_Html_Html5 Validation - Fatal编程技术网

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>