簡體   English   中英

Javascript函數返回NaN

[英]Javascript function returns NaN

我真的需要一些幫助。 該功能應該計算估計的收盤成本。 但由於某些原因,無論我用它做什么,結果總是“NaN”。 誰能幫我嗎? 我不知道哪里出錯了。

function calc_closing_costs(form) {
    var purch_price = document.getElementById('purch_price');
    var ont_ltt = 0;
    if ((isNaN(parseInt(purch_price.value, 10))) || purch_price === "") {
        alert("You must enter a number!");
    } else if (parseInt(purch_price.value, 10) < 0) {
        alert("You must enter a positive number!");
    }
    if (400000 < parseInt(purch_price.value, 10)) {
        ont_ltt = (parseInt(purch_price.value, 10) - 400000) * 0.02 + 4475;
    } else {
        if (250000 < parseInt(purch_price.value, 10)) {
            ont_ltt = (parseInt(purch_price.value, 10) - 250000) * 0.015 + 2225;
        } else {
            if (55000 < parseInt(purch_price.value, 10)) {
                ont_ltt = (parseInt(purch_price.value, 10) - 55000) * 0.01 + 275;
            } else {
                ont_ltt = parseInt(purch_price.value, 10) * 0.005;
            }
        }
    }
    var legal_fees = document.getElementById('legal_fees');
    var closing_adj = document.getElementById('closing_adj');
    var result = document.getElementById('result');

    if (purch_price.value === "" || purch_price.value != parseFloat(purch_price.value)) {
        purch_price.value = 0;
    }
    if (legal_fees.value === "" || legal_fees.value != parseFloat(legal_fees.value)) {
        legal_fees.value = 0;
    }
    if (closing_adj.value === "" || closing_adj.value != parseFloat(closing_adj.value)) {
        closing_adj.value = 0;
    }
    result.value = 0;
    result.value = parseInt(result.value, 10);
    result.value = parseInt(ont_ltt.value, 10) + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);
    document.getElementById("tecc").innerHTML = result.value;
}

這個:

    result.value = parseInt(ont_ltt.value, 10) + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);

沒有意義 - “ont_ltt”是一個JavaScript變量,而不是頁面元素。

它應該只是:

     result.value = ont_ltt + parseInt(legal_fees.value, 10) + parseInt(closing_adj.value, 10);

好吧, 也許它應該; 你沒有發布你正在嘗試做的事情的頁面或整體計划。 特別是使用parseInt()似乎有問題。 它總是會給你一個整數並截斷該值的任何小數部分(小數點后的任何內容)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM