簡體   English   中英

“未定義”錯誤在 Javascript 中打印出來

[英]"undefined" error prints out in Javascript

美好的一天,我正在編寫一個簡單的計算價格基於: 單一價格 該價格的頻率(每周、每天等)。

我一直在頁面上打印出“未定義”這個詞。 我試圖重新定義該部分的所有變量。 所有變量都被正確定義。 你們在下面的代碼中看到任何錯誤嗎?

 //parking cost var parking_cost1 = 0; var parkingCostUnity1 = 0; var parkingCostFrequency1 = 0; parking_cost1 = new Number(document.getElementById("parking_cost1").value); parkingCostFrequency1 = document.getElementById("parking_cost1_frequence1").value; if (parkingCostFrequency1 == "per_night") { parkingCostUnity1 = result; } if (parkingCostFrequency1 == "per_week") { parkingCostUnity1 = nrOfWeeks; } if (parkingCostFrequency1 == "per_month") { parkingCostUnity1 = nrOfMonths; } var echoParkingCostFrequency1 = parkingCostFrequency1.replace("_", " "); var totalParkingCost1 = 0; totalParkingCost1 = parkingCostUnity1 * parking_cost1; if (totalParkingCost1 > 0) { var printOutTotalParkingCost1 = '<tr><td><b>Total parking cost</b></td><td>' + parking_cost1 + ' ' + currency + ' ' + echoParkingCostFrequency1 + '</td><td>' + totalParkingCost1 + ' ' + currency + '</td></tr>'; }
 <i class="fas fa-parking"></i> <text class="form_basic_text" />Parking cost<br> <input type="number" onChange="resume()" name="parking_cost1" id="parking_cost1" class="form_basic_field_bid" style="width:auto;" /><br/> <center> <select onChange="resume()" name="parking_cost1_frequence1" id="parking_cost1_frequence1" style="width:auto;height:25px;padding:0px;width:auto;"> <option value="per_night">Per night</option> <option value="per_week">Per week</option> <option value="per_month">Per month</option> </select> </center>

文檔中已經定義了以下變量:

//var currency
var currency = document.getElementById("currency").value;
//This variable is always defined, as it's a dropdown.

//var result, nrOfWeeks and nrOfMonths are all under the same parameters
 
//check-in date
var checkInDate = new Date(document.getElementById("check_in_date").value);
var checkInDateResume = checkInDate.getDate() + '-' + (checkInDate.getMonth()+1) + '-' + checkInDate.getFullYear();
if(checkInDateResume=="NaN-NaN-NaN"){
checkInDateResume = "<text class='alert'>Not defined yet</text>";
result = 1;
nrOfWeeks = 1;
nrBiWeeks = 1;
nrOfMonths = 1;
}

var checkOutDate = new Date(document.getElementById("check_out_date").value);
var checkOutDateResume = checkOutDate.getDate() + '-' + (checkOutDate.getMonth()+1) + '-' + checkOutDate.getFullYear();
if(checkOutDateResume=="NaN-NaN-NaN"){
checkOutDateResume = "<text class='alert'>Not defined yet</text>";
result = 1;
nrOfWeeks = 1;
nrBiWeeks = 1;
nrOfMonths = 1;
}

//Since the nr of months, week and result (the number of nights) is the difference between the check-in and check-out date - Those aren't defined except as mentionned up here. We then define the rest of the vars
var difference = Math.abs(checkOutDate-checkInDate);
var result = difference/(1000*3600*24);
var nrOfMonths = Math.ceil(result/30.41);
var nrOfWeeks = Math.ceil(result/7);
            


謝謝!

編輯:這是我第一次在這里發帖。 感謝您的耐心和您對如何使我的問題更容易理解的評論!

我做了一些擴展研究並發現了我的錯誤:我忘記在最后一個 IF 語句中添加 else。

if(totalParkingCost1>0){
var printOutTotalParkingCost1 = 'XYZ';
}

var printOutTotalParkingCost1 用於任何場景。 我添加了以下其他內容

else{
var printOutTotalParkingCost1 = "";
}

現在,無論場景如何,都定義了變量 printOutTotalParkingCost1。 謝謝大家的熱心幫助! 感謝@ivar 的詳盡解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM