微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript 计算中的神秘错误

如何解决Javascript 计算中的神秘错误

我之前尝试过两次发布此问题,但由于与之前的问题太相似,它一直被删除。但是,之前的问题似乎是关于如何防止提交表单,而我的问题是如何防止提交。 (当然,除非我对 preventDefault 有一些不了解,这很可能是。)

我编写了一个 Flash 应用程序并使用 javascript 根据用户输入计算某些字段。当用户输入一个值时,计算的答案在输出区域闪烁,然后消失,页面似乎自动刷新(即输入消失,页面向上滚动到顶部)。 如果我清除缓存并多次刷新页面(有时只是一两次,有时很多次),页面将开始正常工作。但是下次我启动它时,同样的事情发生了。但是,当用户从以前使用过的值的弹出窗口中选择一个输入值时,该应用程序会起作用。

我没有收到错误消息。我不明白我的代码中是什么导致了这种情况的发生。这是两个计算字段的代码。首先,用户输入一个代表员工流失率的数字,然后计算返回与该流失率相关的费用与当前流失率的差异。在第二个中,用户输入员工 ID 号,计算返回该员工离开公司的几率。

d3.json('/turnover_cost',function(data) {
    var turnover = (Object.values(data[5]))
    var avg_cost = data[2].avg_cost
    var total_cost = data[3].total_cost
    var total_display_cost = total_cost.toLocaleString('en-US')
    var total_employees = data[0].total_employees

    d3.select("#currentRate").text(`Current Turnover Rate:  ${turnover}%`)
    d3.select("#currentCost").text(`Estimated Cost of Current Turnover:  $${total_display_cost}`)

    input = d3.select("#new_rate")
    input.on("change",runestimate)


    function runestimate() {
        var new_rate = (d3.select("#new_rate").node().value / 100)
        var new_cost = (avg_cost * (new_rate * total_employees))
        var difference = (parseInt(total_cost - new_cost))
        var post = difference.toLocaleString('en-US')
        d3.select("#cost_diff").text(`$${post}`)
        d3.select("#new_rate").node().value = "";
        console.log(difference)
    }
})

d3.json('/employee_data',function(data) {
    input = d3.select("#emp_num")
    input.on("change",runPredict)

    function runPredict() {
        inputted_num = d3.select('#emp_num').node().value;
        const found = data.some(el => el.employee_number == inputted_num);
        if (!found) prediction = "Number not found";

        var prediction
        for (var i = 0; i < data.length; i++) {
            if (inputted_num == data[i].employee_number) {
                prediction = (data[i].loss_probability).toFixed(1);
            }
        }
        d3.select("#prediction").text(`${prediction}%`);
        d3.select("#emp_num").node().value = "";
}

这是 HTML:

            <div class="panel-body">
                <form id="rate">
                    <input type="float" id="new_rate">&emsp; &emsp; &emsp;
                    <ouput type="integer" id="cost_diff">
                        <br><br>

                </form>

                <form id="predict">
                   <input type="integer" id="emp_num">&emsp; &emsp; &emsp;
                   <ouput type="float" id="prediction">
                            <br><br>
                </form>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。