1. 程式人生 > >html中顯示內部伺服器錯誤問題(已解決)

html中顯示內部伺服器錯誤問題(已解決)

Uncaught TypeError: Cannot set property 'innerHTML' of null

問題所在:程式碼中所設定的物件未被解析和載入

個人問題具體描述,問題報錯出現於第2個if語句,第一個if語句(驗證使用者名稱)顯示通過,但執行到第二個if語句(驗證密碼)顯示錯誤

驗證使用者名稱是否為空通過:


驗證密碼是否為空報錯:


部分相關程式碼展示:

js部分:

function showMassage(){
			var username = document.getElementById("username");
			var password1 = document.getElementById("password1");
			var password2 = document.getElementById("password2");
			var ifusername = document.getElementById("ifusername");
			var ifpassword1 = document.getElementById("ifpassword1");
			var ifpassword2 = document.getElementById("ifpassword2");
			/*驗證使用者名稱是否為空*/
			if(username.value==""){
				ifusername.innerHTML = "使用者名稱不能為空";
				return false;//為什麼是false
			}
			else
			{
				ifusername.innerHTML="";
			}
			/*驗證密碼是否為空*/
			if(password1.value==""){
				ifpassword1.innerHTML = "密碼不能為空";
				return false;
			}
			else{
				ifpassword1.innerHTML=""
			}

css部分:

			<form name="useredit" method="post" onsubmit="return showMassage()" action="">
			<table style="margin-left: 20px;">
			<tr style="height:40px; ">
				<td style="font-size: 20px; ">用  戶  名:<input id="username" type="text" name="username" size="30px;"></input></td>
				<td><span id="ifusername" style=""></span></td>
			</tr>
			<tr style="height:40px;">
				<td style="font-size: 20px; ">密        碼:<input id="password1" name="password1" type="password" size="30px;"></input></td>
				<td><span id=" ifpassword1" style=""></span></td>
			</tr>
		</table>
		</form>

搜尋到的解決辦法如下:

1.將<script></script>內容全部剪下放入<head></head>頭部中或者放入body尾部,保證完成載入。

(對於我這段程式碼無效)

2.把js程式碼檔案引用或者程式碼放置最後或者呼叫的物件後面。

(對於我這段程式碼無效)

---------------------------------------------分割線--------------------------------------------------------

經過多次檢查仍然不能解決後,詢問了大神哥哥,哥哥一針見血指出錯誤之處:

與上述無關,是為命名id處出現錯誤:


最後一行id=" ifpassword1"中多寫了一個空格,之前一直往邏輯方向思考以至於沒有發現這麼明顯的錯誤,望,引以為戒。