我是JS的新手,我试图在这里进行最简单的验证,我无法让它工作:/基本上当我按提交时,我想要在表格下方的div中的错误文本或来自php的回显文本文件。它出什么问题了?我真的不知道我做错了什么,请帮忙
<form name="myform" id="myform" method="post" action="echo.php">
<label for="username">User Name:</label><br />
<input type="text" id="username" name="username" /><br />
<label for="password">Password</label><br />
<input type="text" name="password" /><br />
<input type="submit" id="submit" value="Send">
</form>
<div id="errorMessages"></div>
和JS代码:
window.onload = function(){
validateForm();
}
function validateForm(){
document.getElementById("myform").onsubmit = function(){
if (document.getElementById("username") == ""){
document.getElementById("errorMessages").innerHTML = "ERROR";
return false;
}
else return true;
};
}
答案 0 :(得分:4)
document.getElementById("username")
是一个DOM元素
只要该元素存在,它就永远不会模糊地等于""
。
您可能需要.value
,它会返回文本框的值。
答案 1 :(得分:0)
if (document.getElementById("username").value){
document.getElementById("errorMessages").innerHTML = "ERROR";
return false;
}
else {
return true;
}
注意document.getElementById
返回页面上找到的DOM元素的实例。所以使用.value
属性。此外,您不需要在JavaScript中将字符串与空字符串进行比较,因此请删除== ""
。
答案 2 :(得分:0)
这是正确的js:
window.onload = function(){
validateForm();
}
function validateForm(){
document.getElementById("myform").onsubmit = function(){
if (document.getElementById("username").value == ""){
document.getElementById("errorMessages").innerHTML = "ERROR";
return false;
}
else return true;
};
}
在document.getElementById(“username”)之后缺少“.value”