2015-11-28 124 views
-1

我一直收到錯誤「無法讀取null屬性值」在我的JavaScript。原本爲變量賦值的元素值,當錯誤發生在:Javascript:無法讀取屬性值null

var breakCal = document.getElementById("breakfast").value; 

我把作業條件語句中,並試圖改變這裏這些元素的CSS屬性時,現在我收到的錯誤:

if(passBreakCal == false){ document.getElementById("breakfast").style.borderColor="red"; } 

有沒有人有任何建議?

function verifyDailySum2(){ 
    if(document.getElementById("breakfast") !== null){ 
     var breakCal = document.getElementById("breakfast").value; 
    } 
    else{ 
     var breakCal = null; 
    } 
    if (document.getElementById("lunch") !== null) { 
     var lunchCal = document.getElementById("lunch").value; 
    } 
    else{ 
     var lunchCal = null; 
    } 
    if (document.getElementById("dinner") !== null) { 
     var dinnerCal = document.getElementById("dinner").value; 
    } 
    else { 
     var dinnerCal = null; 
    } 
    if(document.getElementById("snack") !== null){ 
     var snackCal = document.getElementById("snack").value; 
    } 
    else{ 
     var snackCal = null; 
    } 
    if(document.getElementById("weight") !== null){ 
     var weight = document.getElementById("weight").value; 
    } 
    else{ 
     var weight = null; 
    } 

    alert(breakCal + "$" + lunchCal + "$" + dinnerCal + "$" + snackCal + "$" + weight); 

    var pattern = /^[0-9]+$/; 

    var passBreakCal = pattern.test(breakCal); 
    var passLunchCal = pattern.test(lunchCal); 
    var passDinnerCal = pattern.test(dinnerCal); 
    var passSnackCal = pattern.test(snackCal); 
    var passWeight = pattern.test(weight); 

    if(passBreakCal == false || passLunchCal == false || passDinnerCal == false || 
     + passSnackCal == false || passWeight == false){ 
     alert("One of the fields is empty. Or contains characters other than numbers"); 

     if(passBreakCal == false){ 
      document.getElementById("breakfast").style.borderColor="red"; 
     } 
     if(passLunchCal == false){ 
      document.getElementById("lunch").style.borderColor="red"; 
     } 
     if(passDinnerCal == false){ 
      document.getElementById("dinner").style.borderColor="red"; 
     } 
     if(passSnackCal == false){ 
      document.getElementById("snack").style.borderColor="red"; 
     } 
     if(passWeight == false){ 
      document.getElementById("weight").style.borderColor="red"; 
     } 

     return false; 
    } 
    else{ 
     return true; 
    } 

} 

這裏是調用函​​數的PHP頁面。所有標記都是引導程序。

<?php 
include('session.php'); 
include('header.php'); 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns = "http://www.w3.org/1999/xhtml"> 

<head> 
     <title> Workout Daily Summary </title> 
     <link href = "bootstrap-theme.css" rel = "stylesheet" type ="text/css"/> 
     <link href = "bootstrap.css" rel = "stylesheet" type ="text/css"/> 
     <link href = "is448_project.css" rel = "stylesheet" type ="text/css"/> 
     <link href = "bootstrap.min.css" rel = "stylesheet" type ="text/css"/> 
     <script type="text/javascript" src="dailySum.js"></script> 
</head> 

<body> 
    <div class = "row"> 
    <div class = "col-sm-4"> 
    <div class = "border"> 
    <h3> Daily Summary: </h3> 


    <p> 
     Please list calories consumed for each meal today: 
    </p> 

    <form action = "dailySumTable.php" method="post"> 

     Breakfast: <input type = "text" name = "breakfast" size = "4" maxlength = "4"/> 
     <br/> <br/> 
     Lunch: <input type = "text" name = "lunch" size = "4" maxlength = "4"/> 
     <br/> <br/> 
     Dinner: <input type = "text" name = "dinner" size = "4" maxlength = "4"/> 
     <br/> <br/> 
     Snack: <input type = "text" name = "snack" size = "4" maxlength = "4"/> 
     <br/> <br/> 


      Activities Completed Today:<br/> 
      <select name = "activity"> 
       <option value="Running">Running</option> 
       <option value="Walking">Walking</option> 
       <option value="Weight_Lifting">Weight Lifting</option> 
       <option value="Swimming">Swimming</option> 
       <option value="Biking">Biking</option> 
       <option value="Yoga">Yoga</option> 
      </select> Time (in minutes): <input type = "text" name = "time1" size = "4" maxlength = "4"/><br/><br/> 
      <select name = "activity2"> 
       <option value="Biking">Biking</option> 
       <option value="Running">Running</option> 
       <option value="Walking">Walking</option> 
       <option value="Weight_Lifting">Weight Lifting</option> 
       <option value="Swimming">Swimming</option> 
       <option value="Yoga">Yoga</option> 
      </select> Time (in minutes): <input type = "text" name = "time2" size = "4" maxlength = "4"/><br/><br/> 
      <select name = "activity3"> 
       <option value="Weight_Lifting">Weight Lifting</option> 
       <option value="Running">Running</option> 
       <option value="Walking">Walking</option> 
       <option value="Swimming">Swimming</option> 
       <option value="Biking">Biking</option> 
       <option value="Yoga">Yoga</option> 
      </select> Time (in minutes): <input type = "text" name = "time3" size = "4" maxlength = "4"/><br/><br/> 
      <select name = "activity4"> 
       <option value="Swimming">Swimming</option> 
       <option value="Running">Running</option> 
       <option value="Walking">Walking</option> 
       <option value="Weight_Lifting">Weight Lifting</option> 
       <option value="Biking">Biking</option> 
       <option value="Yoga">Yoga</option> 
      </select> Time (in minutes): <input type = "text" name = "time4" size = "4" maxlength = "4"/><br/><br/> 
      <select name = "activity5"> 
       <option value="Other">Other</option> 
       <option value="Swimming">Swimming</option> 
       <option value="Running">Running</option> 
       <option value="Walking">Walking</option> 
       <option value="Weight_Lifting">Weight Lifting</option> 
       <option value="Biking">Biking</option> 
       <option value="Yoga">Yoga</option> 
      </select> Time (in minutes): <input type = "text" name = "time5" size = "4" maxlength = "4"/><br/> <br/> 



      Daily Weigh in: <br/> <br/> 


     Weight:<input type = "text" name = "weight" size = "4" maxlength = "4"/> 
     <br/> 



     <input type = "reset" value = "Clear" /> 
     <input type = "submit" value = "Submit" onclick = "return verifyDailySum2()" /> 

    </form> 
    </div> 
    </div> 
    <div class = "col-sm-7"> <img class = "curls" src="salad.jpg" alt ="salad"/> </div> 
    </div> 



</body> 
</html> 
+0

鏈接的jsfiddle請,也可以添加標記過 – TrojanMorse

+0

,你可以做一個小提琴(http://jsfiddle.net),所以我們可以看到在行動 –

+0

錯誤你檢查speling? – deamentiaemundi

回答

0

有沒有元素與id「早餐」。只有inputname被設置爲該值。

Breakfast: <input type="text" name="breakfast" size="4" maxlength="4"/> 

更新你的元素,使其具有id="breakfast"

<!----------------------------vvvvvvvvvvvvv---> 
Breakfast: <input type="text" id="breakfast" name="breakfast" size="4" maxlength="4"/> 
+0

更新和檢查 – sheff

+0

謝謝!我不敢相信我忘了Id。感謝您的高舉。我的警報顯示仍然存在問題,請在此處進行深入瞭解? – sheff