我在<div>
中写出总和,但在我在输入框中输入值之前,它会显示NaN
。
如何过滤掉以避免使用Nan?
app.js
$(document).ready(calculate);
$(document).on("keyup", calculate);
function calculate() {
var sum = 0;
var value1 = $("#a_price").val();
var value2 = $("#otherElemenet").val();
$(".o-money__answer").each(function(){
sum += parseFloat($(this).val()) * parseFloat(monetary_factor.replace(",", ".")) * parseFloat($(this).parent().find('input[type=hidden]').val());
});
$("#o-money__totalsum").html(sum.toFixed(2));
}
PHP
<form class="o-money__form" id="<?php echo $counter; ?>" method="post" action="#">
<?php $rows = get_field('pengar'); ?>
<?php if ($rows): ?>
<?php foreach($rows as $row): ?>
<div class="o-money__positionInput">
<div class="right50">
<label class="label labelInput">Antal <?php echo $row['typ_av_enhet']; ?></label>
</div>
<input type="text" value="" class="o-money__answer">
<input type="hidden" value="<?php echo $row['a_price'];?>">
</div>
<?php endforeach; ?>
<label id="o-money__totalsum"> 0</label>
</form>
<!--
<?php
if(have_rows('pengar')):
while(have_rows('pengar')) :
the_row();
$a_price = get_sub_field('a_price');
$monetary_factor = get_field('monetary_factor', 'option');
?>
-->
<?php
break;
endwhile;
endif;
?>
<?php endif; ?>
</form>
答案 0 :(得分:1)
您可以使用isNaN
测试NaN:
if(!isNaN(sum))$("#o-money__totalsum").html(sum.toFixed(2));
答案 1 :(得分:0)
有一个名为isNaN()
的javascript原生方法。
您只需在显示任何内容之前对其进行测试。
if (isNaN(your_var)) {
....
} else {
....
}