我刚刚将数字格式化为以逗号显示,但现在我的计算器不起作用?



我正在构建一个我以前提出问题的计算器,请参阅上一个链接:构建利率计算器,但是它不会产生图形

我希望某些字段在输入时出现在逗号上,我在这里找到了一些代码,它似乎可以使用格式,但是现在计算刚刚返回NAN。

有什么想法为什么添加逗号会阻止它工作?

这是我用来添加逗号的代码,计算器的代码在上一个链接上:

html:

    <div class="col-md-10 col-md-offset-1 form-body form-group">
                <h2 class="form-heading">Find out how much your mortgage will cost</h2>
                <div class="row text-muted">
                    <div class="col-md-5 col-md-offset-1 calc-input">
                        <h3>Purchase Price</h3>
                        <div class="input-group">
                            <span class="input-group-addon">£</span>
                            <input type="text" class="form-control comma" id="pp" placeholder="150,000" onchange="depositValue()">
                        </div>
                        <h3>Deposit</h3>
                        <div class="row text-muted">
                            <div class="col-md-4">
                                <div class="input-group">
                                    <input type="text" class="form-control" id="percent" placeholder="10" onchange="depositValue()">
                                    <span class="input-group-addon">%</span>
                                </div>
                            </div>
                            <div class="col-md-8">
                                <div class="input-group">
                                    <span class="input-group-addon">£</span>
                                    <input type="text" class="form-control comma" id="dp" placeholder="15,000" onchange="depositPercent()">
                                </div>
                            </div>
                        </div>
                        <h3>Mortgage Term</h3>
                        <div class="input-group">
                            <input type="text" class="form-control" id="mt" placeholder="25">
                            <span class="input-group-addon">Years</span>
                        </div>
                        <h3>Interest Rate</h3>
                        <div class="input-group">
                            <input type="text" class="form-control" id="ir" placeholder="4">
                            <span class="input-group-addon">%</span>
                        </div>
                    </div>
                    <div class="col-md-5 text-center">
                        <h3>Estimated Monthly Payment:</h3>
                        <p id="result"></p>
                        </div>   
                </div>
                <div class="row text-muted">
                    <div class="col-md-10 col-md-offset-1 text-center">
                        <button class="btn btn-cta" onclick="calculate()">Calculate</button>
                    </div>
                </div>
            </div>

计算器JS:

    function calculate() {
var pp = document.getElementById("pp").value;
var dp = document.getElementById("dp").value;
var mt = document.getElementById("mt").value;
var ir = document.getElementById("ir").value;
var result = document.getElementById("result");
var la = parseInt(pp.replace(/,/g, ""), 10) - parseInt(dp.replace(/,/g, ""), 10);
var intRate = (ir/100)/12;
var months = mt * 12;
var monthlyPayment = ((((la*intRate)/(1-Math.pow(1+intRate,(-1*months)))*100)/100).toFixed(2));
result.innerHTML = "£" + monthlyPayment.replace(/B(?=(d{3})+(?!d))/g, ",");
    }
    function depositValue() {
    var pp = document.getElementById("pp").value;
    var percent = document.getElementById("percent").value;
    var dp = document.getElementById("dp");
    var dpValue = (parseInt(percent.replace(/,/g, ""), 10) / 100) * parseInt(pp.replace(/,/g, ""), 10);
    dp.value = dpValue;
    }
    function depositPercent() {
    var pp = document.getElementById("pp").value;
    var dp = document.getElementById("dp").value;
    var percent = document.getElementById("percent");
    var dpPercent = (parseInt(dp.replace(/,/g, ""), 10) / parseInt(pp.replace(/,/g, ""), 10) * 100).toFixed(0);
    percent.value = dpPercent;
    }

逗号JS(在另一个文件中(:

    $('input.comma').keyup(function(event) {
    // skip for arrow keys
    if(event.which >= 37 && event.which <= 40) return;
    // format number
    $(this).val(function(index, value) {
    return value
    .replace(/D/g, "")
    .replace(/B(?=(d{3})+(?!d))/g, ",")
    ;
    });
    });

添加逗号的那一刻,它不再是一个数字,而是字符串。当您进行计算时,您必须通过在处理前将它们剥离来考虑。

最新更新