I am trying to add multiple text boxes integer value and the sum to be store in another text box.
我试图添加多个文本框整数值和要存储在另一个文本框中的总和。
<script>
function updatesum(){
cash = parseInt(document.rent_form.cash.value,10);
card = parseInt(document.rent_form.card.value,10);
online = parseInt(document.rent_form.online.value,10);
deduction = parseInt(document.rent_form.deduction.value,10);
actAmount = parseInt(document.rent_form.actAmount.value,10);
tot = actAmount - (cash+card+online+deduction);
document.rent_form.bal.value = tot;
}
</script>
I am getting NaN value displayed in text box with name="bal"
我在文本框中显示NaN值,名称=“bal”
<form class="form-horizontal" name="rent_form" id="rent_form" action="php/tenantTable.php"
method="POST">
<input type="text" id="act_rent_amount" name="actAmount" class="input-xlarge" placeholder=""
value="<?php echo ($row['rent_amount']); ?>" style="visibility: hidden">
<input type="text" name="cash" onChange="updatesum()" value="0">
<input type="text" name="card" onChange="updatesum()" value="0">
<input type="text" name="online" onChange="updatesum()" value="0">
<input type="text" name="deduction" onChange="updatesum()" value="0">
<input type="text" id="bal" name="bal">
Here's a link
这是一个链接
1 个解决方案
#1
1
If you want to read the value of an input, you need to use document.getElementById("inputid")
. so instead of
如果要读取输入的值,则需要使用document.getElementById(“inputid”)。而不是
cash = parseInt(document.rent_form.cash.value,10);
you need to use
你需要使用
cash = parseInt(document.getElementById("cash").value,10);
You also need to give all your input fields an Id. If you want to use the name, you need to use getElementsByName()[0]
, which returns the first element with that name (but please use the ID, it's more accurate and easier to read).
您还需要为所有输入字段指定ID。如果要使用该名称,则需要使用getElementsByName()[0],它返回具有该名称的第一个元素(但请使用该ID,它更准确,更易于阅读)。
However, because you have the same logical sequence 5 times, I'd do it slightly differently and wrap it into a function:
但是,因为你有5次相同的逻辑顺序,我会稍微改变一下并将其包装成一个函数:
function ParseElementValue(elementName){
return parseInt(document.getElementById(elementName).value,10);
}
and call this like this:
并称之为:
cash = ParseElementValue("cash");
card = ParseElementValue("card");
#1
1
If you want to read the value of an input, you need to use document.getElementById("inputid")
. so instead of
如果要读取输入的值,则需要使用document.getElementById(“inputid”)。而不是
cash = parseInt(document.rent_form.cash.value,10);
you need to use
你需要使用
cash = parseInt(document.getElementById("cash").value,10);
You also need to give all your input fields an Id. If you want to use the name, you need to use getElementsByName()[0]
, which returns the first element with that name (but please use the ID, it's more accurate and easier to read).
您还需要为所有输入字段指定ID。如果要使用该名称,则需要使用getElementsByName()[0],它返回具有该名称的第一个元素(但请使用该ID,它更准确,更易于阅读)。
However, because you have the same logical sequence 5 times, I'd do it slightly differently and wrap it into a function:
但是,因为你有5次相同的逻辑顺序,我会稍微改变一下并将其包装成一个函数:
function ParseElementValue(elementName){
return parseInt(document.getElementById(elementName).value,10);
}
and call this like this:
并称之为:
cash = ParseElementValue("cash");
card = ParseElementValue("card");