Javascript中的if语句- if - else问题
if statement - If-Else Issue In Javascript
我在javascript中做一个条件语句。当用户在"Collect"输入框中输入一个值时,该值将与"CurBal"输入框中的值一起进行加法运算,并将结果放入"Balance"输入框中。
如果用户在"押金"输入框中输入了一个值,那么这个值将从"余额"中减去,差额也将反映在"余额"中
我有这样的代码:
var collect = parseFloat(document.getElementById("Collect").value) ||0;
var dep = parseFloat(document.getElementById("Deposit").value) ||0;
var curr = parseFloat(document.getElementById("CurBal").value) ||0;
var bal = document.getElementById("Balance");
if (collect.value = true)
{
bal.value = (collect + curr).toFixed(2)
bal = document.getElementById("Balance");
}
else if (dep.value = true)
{
bal.value = (curr - dep).toFixed(2)
bal = document.getElementById("Balance");
}
HTML: <tr>
<td> Collections: </td>
<td> <input onchange="addNumbers()" type="text" id="Collect" name="Collect" value="" /> </td>
</tr>
<tr>
<td> Deposits:</td>
<td> <input onchange="addNumbers()" type="text" id="Deposit" name="Deposit" value="" /> </td>
</tr>
<tr>
<td> Current Balance: </td>
<td> <input onchange="addNumbers()" type="text" id="CurBal" name= "CurBal" value="<?php echo $all['balance']; ?>" readonly="readOnly" /> </td>
</tr>
<tr>
<td> Balance: </td>
<td> <input type="text" id="Balance" name="Balance" value="" readonly="readOnly" /> </td>
</tr>
但是,它只是正确地执行了第一个条件。如果我在"存款"输入框中输入一个值,它不会从"CurBal"中减去值,它只是复制了"CurBal"中的值。
应该删除、添加或更改哪些内容?谢谢你的帮助
附加信息:用户只能输入"Collect"或"Balance"的值。
你有这个:
if (collect.value = true)
{
bal.value = (collect + curr).toFixed(2)
bal = document.getElementById("Balance");
}
else if (dep.value == true)
{
bal.value = (curr - dep).toFixed(2)
bal = document.getElementById("Balance");
}
听起来好像你需要这个:
if (collect.value = true)
{
bal.value = (collect + curr).toFixed(2)
bal = document.getElementById("Balance");
}
if (dep.value == true)
{
bal.value = (curr - dep).toFixed(2)
bal = document.getElementById("Balance");
}
你有一个else if
条件,所以如果collect.value
为真,你的其他条件将不会运行。
值得注意的是-您还在if
语句中执行赋值,而实际上,您应该检查是否相等。事实上,你甚至不需要这样做;你可以这样做:
if (collect.value)
{
...
}
if (dep.value)
{
...
}
您在第一个if
测试中将true
分配给collect.value
。赋值表达式的值就是赋值的值;在本例中是true
。因此,第一次测试总是会成功。您应该使用==
或===
进行比较测试。(第一个操作符将在必要时转换类型;===
操作符只有在当前数据类型已经相同的情况下才会成功)。
对于布尔值,最好使用if (collect.value)
(等)而不是if (collect.value == true)
。
如果条件中缺少双等号。试着改变条件。
if (collect.value != 0)
else if (dep.value != 0)
按以下评论编辑
// Collect is now a number
var collect = parseFloat(document.getElementById("Collect").value) ||0;
// dep is now a number
var dep = parseFloat(document.getElementById("Deposit").value) ||0;
// Cur is now a number
var curr = parseFloat(document.getElementById("CurBal").value) ||0;
// bal is now pointing to an element
var bal = document.getElementById("Balance");
// What are you trying to compare here? That bal !== 0 perhaps?
// Collect is a number, so we can do the compare here.
if (collect !== 0) {
bal.value = (collect + curr).toFixed(2)
// Dep, on the other hand, is pointing to an element
// so we use the property here
// The leading '+' is a quick way to turn the string value (dep.value is a string)
// into a number.
} else if (+dep.value !== 0) {
bal.value = (curr - dep).toFixed(2)
}
**注释**线:
if (collect !== 0) {
可以写成
if (collect) {
,但我总是建议写最易读的版本,准确地描述你的意思。
试试这个
var collect = parseFloat(document.getElementById("Collect").value) ||0;
var dep = parseFloat(document.getElementById("Deposit").value) ||0;
var curr = parseFloat(document.getElementById("CurBal").value) ||0;
var bal = document.getElementById("Balance");
if (collect != 0)
{
bal.value = (collect + curr).toFixed(2)
bal = document.getElementById("Balance");
}
else if (dep != 0)
{
bal.value = (curr - dep).toFixed(2)
bal = document.getElementById("Balance");
}
相关文章:
- 如何在ReactJS JSX中执行嵌套的if-else语句
- Javascript Return and if/else
- JavaScript if-else 速记错误
- 如何检查if/else语句中的随机条件
- 在javascript中创建数组,而不是if.else
- Javascript If else 只返回 TRUE 或只返回 FALSE
- jquery if else不返回警报消息
- 在Javascript中为if/else语句添加OR
- If Else Java Script HTML
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- 我应该如何应用if-else条件来向具有不同用户角色的人显示不同的菜单
- geoTest函数-创建if/else语句
- JavaScript中的温度转换器(IF ELSE条件)
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- 编写if-else语句的更好方法
- 在if/else语句中显示DIV
- PHP If Else-隐藏按钮
- JavaScript if/else未按预期操作
- if/else运算符未更改
- 名称不能以''jquery-if-else条件中的字符