我在自动计算html表中要支付的金额时遇到问题。
html代码如下所示:
<td>
<input type="hidden" id="getAvailability" readonly class="form-control input-sm" />
<strong>Qty</strong><br />
<input type="text" tabindex="1" name="Qty" id="getQty" class="form-control input-sm NumbersOnly" />
</td>
<td>
<strong>Rate</strong><br />
<input type="text" name="Rate" id="getRate" readonly class="form-control input-sm " />
</td>
<td>
<strong>Amount</strong><br />
<input type="text" name="Amount" id="getAmount" readonly class="form-control input-sm " />
</td>
在这张表中,我有另一个带有SQL条目的表,从中我选择一行。单击此表中的一行时,将调用以下函数:
$(function () {
$('#getStockID').val($.trim(cells[0].innerHTML));
$('#getItem').val($.trim(cells[1].innerHTML));
$('#getAvailability').val($.trim(cells[3].innerHTML));
$('#getRate').val($.trim(cells[4].innerHTML));
});
当我在第一张表格中输入数量时,我希望计算一定金额:
$('#getQty').keyup(function () {
var available = Number($('#getAvailability').val());
var quantity = Number($('#getQty').val());
var rate = Number($('#getRate').val());
if (quantity > available) {
$('#getQty').val(available);
quantity = available;
}
var amount = (quantity * rate);
$("#getAmount").val(amount.toFixed(2));
});
使用此代码,我在单元格中获得NaN。 请建议,我在这个问题上花了太多时间,而且我没有想法。 非常感谢你!
答案 0 :(得分:0)
如果任何文本框都有空值,则会出现此问题。因此您必须在javascript中使用 isNaN 。
$('#getQty').keyup(function () {
var available = chkIsNaN(Number($('#getAvailability').val()));
var quantity = chkIsNaN(Number($('#getQty').val()));
var rate = chkIsNaN(Number($('#getRate').val()));
if (quantity > available) {
$('#getQty').val(available);
quantity = available;
}
var amount = (quantity * rate);
$("#getAmount").val(amount.toFixed(2));
});
function chkIsNaN(val){
if(isNaN(val)){
return '';
}
else{
return val;
}
}