2016-04-19 76 views
0

我是Javascript新手,我想檢查兩次輸入的密碼是否匹配使用Javascript。但似乎不起作用:javascript setCustomValidity不起作用

<html> 
<head> 
<script> 
function checkpasswd(){ 
    var p1 = getElementById("password1"); 
    var p2 = getElementById("password2"); 
    if(p1.value != p2.value){ 
     p2.setCustomValidity("passwd don't match"); 
    }else{ 
     p2.setCustomValidity(""); 
    } 
} 
</script> 
</head> 

<body> 
    <form> 
    passwd:<input type="password" name="password1" id="password1"> 
    confirm passwd:<input type="password" name="password2" id="password2" onchange="checkpasswd()"> 
    </form> 
</body> 
</html> 
+0

如果您使用[開發控制檯](https://developer.mozilla.org/en-US/docs/Web/API/Console),這些問題相對比較容易調試。 – ManoDestra

回答

4

使用的document.getElementById()和使用權ID

function checkpasswd(){ 
    var p1 = document.getElementById("password1"); 
    var p2 = document.getElementById("password2"); 
    if(p1.value != p2.value){ 
     p2.setCustomValidity("passwd don't match"); 
    }else{ 
     p2.setCustomValidity(""); 
    } 
} 
+0

該ID是錯字,我想我錯過了使用onchange事件 – Tee

0

我編輯了自己的代碼

<html> 
<head> 
<script> 
function checkpasswd(){ 
    var p1 = document.getElementById("password1"); 
    var p2 = document.getElementById("password2"); 
    var result = document.getElementById("result"); 
    if(p1.value != p2.value){ 
     result.innerHTML = "passwd don't match"; 
     p2.setCustomValidity("passwd don't match"); 
    }else{ 
     result.innerHTML = "passwd match"; 
     p2.setCustomValidity(""); 
    } 
} 
</script> 
</head> 

<body> 
    <form> 
    passwd:<input type="password" name="password1" id="password1"> 
    confirm passwd:<input type="password" name="password2" id="password2" onkeyup="checkpasswd()"> 
    </form> 

    <div id="result"></div> 
</body> 
</html> 
+0

setCustomValidity函數做什麼?似乎沒用,你能解釋一下嗎? – Tee

0

您使用的id名稱查找拼寫錯誤的元素。你需要提及正確的ID來獲取元素。

您忘記使用文檔對象,並直接嘗試訪問getElementById。

<html> 
<head> 
<script> 
function checkpasswd(){ 
    var p1 = document.getElementById("password1"); 
    var p2 = document.getElementById("password2"); 
    if(p1.value !== p2.value){ 
     p2.setCustomValidity("passwd don't match"); 
    }else{ 
     p2.setCustomValidity(""); 
    } 
} 
</script> 
</head> 

<body> 
    <form> 
    passwd:<input type="password" name="password1" id="password1"> 
    confirm passwd:<input type="password" name="password2" id="password2" onchange="checkpasswd()"> 
    </form> 
</body> 
</html>