如何过滤掉NaN?

时间:2018-03-23 15:06:14

标签: javascript php jquery wordpress advanced-custom-fields

我在<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>

See picture of what im trying to demonstrate

2 个答案:

答案 0 :(得分:1)

您可以使用isNaN测试NaN:

if(!isNaN(sum))$("#o-money__totalsum").html(sum.toFixed(2));

答案 1 :(得分:0)

有一个名为isNaN()的javascript原生方法。

您只需在显示任何内容之前对其进行测试。

if (isNaN(your_var)) {
    ....
} else {
    ....
}