大家好,我有这段代码
function computeChange(){
var change;
var amountDue = parseFloat(document.getElementById("amountDue").value);
var amountReceive = parseFloat(document.getElementById("amountReceive").value);
change = amountReceive - amountDue;
document.getElementById('amountChange').innerHTML = change;
}
<td>Total Amount</td>
<td>Php:<span id="amountDue"><?php echo $sum; ?></span></td>
</tr>
<tr>
<td>Amount Paid</td>
<td><input type="number" id="amountReceive" required="required" maxlength="4" size="4" onKeyUp="computeChange()"></td>
</tr>
<tr>
<td>Change</td>
<td>Php:<span id="amountChange"></span></td>
</tr>
总金额是小数
付款金额=文字
所以问题是如果我在文本框中输入内容,则更改范围为NaN
答案 0 :(得分:9)
parseFloat( document.getElementById("amountDue").value );
在技术上等同于
parseFloat( undefined );
产生值NaN
,因为span元素没有名为.value
的属性。也许你想要.innerHTML
?
parseFloat( document.getElementById("amountDue").innerHTML );
答案 1 :(得分:5)
#amountDue
是<span>
元素,因此它没有value
属性。
使用.innerHTML
获取其内容。
var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);
答案 2 :(得分:2)
这不会返回值:
document.getElementById("amountDue").value
因为amountDue
不是HTML输入元素。
尝试以下:
document.getElementById("amountDue").innerHTML;
即
var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);
答案 3 :(得分:1)
value
返回undefined
,导致parseFloat返回NaN
请改用innerHTML
。改变这一行
var amountDue = parseFloat(document.getElementById("amountDue").value);
到
var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);