html中顯示內部伺服器錯誤問題(已解決)
阿新 • • 發佈:2019-02-06
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"中多寫了一個空格,之前一直往邏輯方向思考以至於沒有發現這麼明顯的錯誤,望,引以為戒。