【发布时间】:2019-12-21 19:58:29
【问题描述】:
当我在值 1(旧)或 2(新)之间进行选择时,我现在的 javascript 代码
就像我选择值 1 表示旧,然后我将数字 5 放在筹码表中,它会像这样 5*5000 计算,对吗?
好的,我想改变的是
- 旧的和新的对新的(最低 150)有旧的要求(最低 80)
- 假设我现在选择旧的,那么最低要求是 80 对吗?因此,当我在筹码表中输入数字(我将输入 400)时,它将计算 400*5000,但如果我输入低于 80 的数字(如 50),则计算为 50*0。所以它类似于“(芯片
- 对于新的类似这样的东西,我认为是“(芯片
所以问题是我不知道要在我的 javascript 中更改哪一个
对不起,如果我的解释不是很好,我只是不知道如何解释。 我还是 javascript 的新手,所以我真的不知道。再次对奇怪的解释感到抱歉。
<script text="javascript">
function calc() {
var tes = document.getElementById("beko").value;
var chip = document.getElementById('chipping').value;
if(tes == 1) {
var result = 5000 * Number(chip);
}
else {
var result = 6000 * Number(chip);
}
document.getElementById("result").value = result;
}
</script>
我现在所拥有的甚至认为我在 var chip 中输入了 1 它仍然是 1*5000
我的预期是这样的
Beko type有新旧2个
旧 = 80
新 = 150
所以当我在芯片中输入数字时
像 300 一样,它会计算 300*5000,但如果我输入 50 或低于 80 的东西,它会计算 50*0,因为没有达到我声明要求为 80 的要求
新的要求是150,计算和旧的一样,只是要求不同
这是我的 HTML
<label>Beko Type</label>
<select name="bekotype" required="required" id="beko">
<option value="1">Old Beko</option>
<option value="2">New Beko</option>
</select>
<label>Chipping</label>
<input type="text" name="chipping" id="chipping" maxlength="20" placeholder="old beko need 80 while new one need 150." required="required" onkeyup="calc()">
<label>Result</label>
<input type="text" name="result" maxlength="100" placeholder="Bonus result" required="required" id="result">
<input type="submit" value="Save">
【问题讨论】:
-
你的结果只在 if 条件范围内有效,如果你想让它对函数可见,那么将 var 结果移动到函数范围内。
-
作用域的存在是为了限制变量的寿命,JavaScript中的所有变量都是对象,如果它有构造函数和析构函数,那么当它进入作用域和离开作用域时就会执行。
-
@SPlatten
var声明具有函数范围。新的 ES6let声明具有块作用域。
标签: javascript html validation conditional-statements form-fields