1 回答
TA贡献1827条经验 获得超7个赞
该document.getElementById函数返回一个节点,而不是来自输入的值。您需要调用value这些节点上的属性来访问它们的值。
function ansValidation(ev) {
ev.preventDefault
// there is no input named name
//var nameValue = document.getElementById("name").value
var nameValue = "test";
var passValue = document.getElementById("password").value
var confpassValue = document.getElementById("confirmPassword").value
// the typeof operator returns a string.
if(typeof nameValue !== "string"){
window.alert("Please re-enter your name")
// we use strict validation ( !== ) because it's a good practice.
}else if(passValue !== confpassValue) {
window.alert("Passwords do not match!")
}
}
<form>
Password:<br>
<input type="password" id="password" placeholder="Password">
<br>
Re-enter Password:<br>
<input type="password" id="confirmPassword" placeholder="Confirm password">
<br>
<input type="button" href="#" onclick="ansValidation(event)" value="Sign Up">
</form>
我还编辑了您的代码以使其在代码段中工作。这是它遇到的一些问题。
id=""
如果要使用该getElementById
函数,则需要将属性传递给输入输入
name
不存在运算符
typeof
返回一个字符串,您需要将其与字符串进行比较。在 Javascript 中比较事物时,严格比较事物 (
===
)始终是一个好习惯。我已将事件添加到函数中,
ev.preventDefault
以确保在发送表单之前正确完成验证。
添加回答
举报