JavaScript错误“Uncaught TypeError:无法设置属性'innerHTML'为null”

时间:2016-09-21 19:23:38

标签: html

它在第51行给我一个错误

<!DOCTYPE html>
<html>
<head>
	<title>Validation</title>
</head>

<body>
	
<div style="width:500px;height:500px;padding-right:auto;padding-left:auto;">
<form action="#" method="get" onsubmit="return FormValidation();">

	
	
	<label>Current Password</label>
	<input type="text" name="pass" id="pass" maxlength="16" required><br>
	
	
	<label name="notif"></label>
	<input type="submit" name="submit">
	

</form>
<script type="text/javascript">

function FormValidation(){
		var passw = "against";
		var opass = document.getElementById("pass").value;
	
		
		if(opass != passw) {
			document.getElementById("notif").innerHTML = "Your password doesn't match.";
			alert('pass now match');
			return false;
		}
		else{
			document.getElementById("notif").innerHTML = opass + " " + npass + " " + rpass;
		}


	}

</script>
</div>
</body>
</html>

有什么建议为什么会有错误?我只想确定密码是否正确并在标签上通知它。

document.getElementById("notif").innerHTML = "Your password doesn't match.";

此表单为我的网站忘记了密码。我们和我的团队正在开发一个带有用户帐户的网站,以及一个用于贷款合作社的网站。

2 个答案:

答案 0 :(得分:2)

这找不到任何东西:

document.getElementById("notif")

因为没有id的元素。因此,这不返回任何内容,并且您无法访问未定义对象上的属性。

最简单的直接方法可能是为您的目标元素提供您正在寻找的id值。我猜你的意思是这个元素:

<label name="notif" id="notif"></label>

事实上,label 可能根本不需要name属性。但是我觉得这取决于你。

修改或者,如果您想避免修改标记,可以use document.querySelector instead

document.querySelector('input[name="notif"]').innerHTML

答案 1 :(得分:0)

您需要更改此行:

<label name="notif"></label>

到此:

<label id="notif"></label>

如果必须保留name属性,可以尝试jQuery:

$("label[name='notif']").html('Your message');