gpt4 book ai didi

javascript - 当输入给定显式值时,无法读取 null 的属性 'value'

转载 作者:行者123 更新时间:2023-12-03 01:16:06 27 4
gpt4 key购买 nike

我知道这种类型的问题之前已经被问过很多次了,而且大多数时候由于元素 ID 不同而得到修复。但是,我已将元素中的 ID 复制并粘贴到 JS 代码中,但仍然收到错误,即使我在输入字段上使用了 value="#"也是如此。任何想法都会有帮助。

//Var
var numsessionsvar = parseInt(document.getElementById("numsessions").value);
var timeofdayvar = document.getElementById("timeofday").value;
var dayvar = document.getElementById("day").value;
var price = "";

//Pricing

function calculate() {
if (timeofday = "0700" || "0800") {
price = "25";
}

if (timeofday = "0900" || "1000" || "1100") {
price = "Normal Rates";
}

if (timeofday = "1200" || "1300") {
if (day = "Saturday") {
price = "20";
}
else {
price = "30";
}
}

if (timeofday = "1400" || "1500") {
price = "20";
}

if (timeofday = "1600" || "1700") {
if (day = "Saturday") {
price = "20";
}
else {
price = "Normal Rate";
}
}

if (timeofday = "1800") {
price = "Normal Rates";
}

if (timeofday = "1900") {
price = "30";
}

if (timeofday = "2000") {
price = "20";
}

//Output
var total = price * numsessions;
var output = "£" + total + ".00";
document.getElementById("output").value = output;
}
<body>
<input type="number" id="numsessions" min="1" max="5" value="1" />
<select id="day">
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
</select>
<select id="timeofday">
<option value="0700">0700</option>
<option value="0800">0800</option>
<option value="0900">0900</option>
<option value="1000">1000</option>
<option value="1100">1100</option>
<option value="1200">1200</option>
<option value="1300">1300</option>
<option value="1400">1400</option>
<option value="1500">1500</option>
<option value="1600">1600</option>
<option value="1700">1700</option>
<option value="1800">1800</option>
<option value="1900">1900</option>
<option value="2000">2000</option>
</select>
<button onclick="calculate()">Calculate</button>
<input type="text" id="output" />
</body>

最佳答案

您的代码中犯了很多错误。

首先,这是一个工作片段,然后我有一些可能对您有帮助的注释:

function calculate() {
   var numsessions = parseInt(document.getElementById("numsessions").value), timeofday = document.getElementById("timeofday").value, dayvar = document.getElementById("day").value, price = "";
   if (timeofday == "0700" || timeofday == "0800") {
       price = 25;
}

   if (timeofday == "0900" || timeofday == "1000" || timeofday == "1100") {
   //price = "Normal Rates";
       price = 25;
     
   }
if (timeofday == "1200" || timeofday == "1300") {
       if (day = "Saturday") {
           price = 20;
}
else {
           price = 30;
}
}

   if (timeofday == "1400" || timeofday == "1500") {
       price = 20;
}

   if (timeofday == "1600" || timeofday == "1700") {
if (day = "Saturday") {
           price = 20;
}
else {
//price = "Normal Rates";
            price = 25;
}
}

   if (timeofday == "1800") {
//price = "Normal Rates";
       price = 25;
}
if (timeofday == "1900") {
       price = 30;
}

   if (timeofday == "2000") {
       price = 20;
}

//Output
   var total = price * numsessions, output = "£" + total + ".00";
document.getElementById("output").value = output;
}
<input type="number" id="numsessions" min="1" max="5" value="1" />
<select id="day">
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
</select>
<select id="timeofday">
<option value="0700">0700</option>
<option value="0800">0800</option>
<option value="0900">0900</option>
<option value="1000">1000</option>
<option value="1100">1100</option>
<option value="1200">1200</option>
<option value="1300">1300</option>
<option value="1400">1400</option>
<option value="1500">1500</option>
<option value="1600">1600</option>
<option value="1700">1700</option>
<option value="1800">1800</option>
<option value="1900">1900</option>
<option value="2000">2000</option>
</select>
<button onclick="calculate()">Calculate</button>
<input type="text" id="output" />

一些注释和解释:

  • 您命名了一些变量,然后尝试使用不同的名称来获取它们,这将导致 undefined variable /空引用错误。
  • 变量 price 可以将 string 作为导致输出中 NaN 的值。在上面的代码片段中,我将所有这些行 price = "Normal Rate"; 更改为 price = 25;
  • 您将数字分配为字符串(price = "35"),这有效并且JavaScript将进行转换它在计算时进行编号,但是,您想要数字为什么将它们分配为字符串?
  • 您使用 = 进行比较,这是错误的。您必须使用 ===== 进行比较。
  • = 用于赋值。
  • == 用于值比较。
  • === 用于值和类型比较。
  • 尽量避免使用内联事件处理程序。 HTML 仅用于页面结构/标记。您应该使用 JavaScript 来完成该任务。

希望我能把你推得更远。

关于javascript - 当输入给定显式值时,无法读取 null 的属性 'value',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52007309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com