javascript - 在表单中使用 JavaScript 进行计算,输出到动态字段,代码不起作用

标签 javascript forms

目标:这段 js 旨在获取输入到表单字段中的值,将它们分配给变量,然后执行计算,输出到该页面上的字段。

有一个简短的函数,如果任何变量未定义或为空,则将输出设置为未知。

我的代码:

function calculate() {
    var $u5pop = $('input[name=sv_21d]').val();
    var $sam = $('input[name=sv_25d]').val();
    var $incidence = $('input[name=sv_313]').val();
    var $treated = $('input[name=sv_312]').val();


    if ($u5pop == undefined ||$u5pop == '') {
        $u5pop = 0;
    }
    else {
        $u5pop = parseFloat($u5pop);
    }

    if ($sam == undefined ||$sam == '') {
        $sam = 0;
    }
    else {
        $sam = parseFloat($sam);
    }

    if ($incidence == undefined || $incidence == '') {
        $incidence = 0;
    }
    else {
        $incidence = parseFloat($incidence);
    }
    //
    if ($treated == undefined || $treated == '') {
        $treated = 0;
    }
    else {
        $treated = parseFloat($treated);
    }

    var $determined = $u5pop / $incidence * $treated * $sam;

    if ($determined == undefined || $determined == '') {
        $determinedOut = 'Unknown';
    }
    else {
        $determinedOut = parseFloat($determined);
    }

    $('#calculation').attr('value', $determinedOut.toFixed(2));
}

输出字段div #calculation是:

<input size="18" class="calculation" id="calculation" value="Click to calculate" onfocus="calculate()"/>

这样,当用户在字段中单击时,它会执行计算。

我认为这是一个结构/语法问题,但我觉得一切都很好。任何有经验的人都能看出我哪里出错了吗? 当前:没有任何反应(保持默认值)。

非常感谢!

编辑:只要填写了所有字段,它就可以完美运行,但是如果字段留空并且函数由 onfocus 调用,则输出“未知”将失败

最佳答案

查看此 jsFiddle .在我将 JS 函数移动到 HTML 上方之前,代码最初无法更改输入值。也许这是你的问题!?

关于javascript - 在表单中使用 JavaScript 进行计算,输出到动态字段,代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12771308/

相关文章:

javascript - ViewModel 中的功能范围

javascript - 如何向 HTML 表格单元格添加唯一命名的 JavaScript 函数

java - Spring不支持请求方法 'POST'

c++ - 开发 Windows 窗体应用程序?

forms - 自定义表单字段呈现

forms - golang - 上传大文件的功能

javascript - 检查日历字段是否为空

javascript - jQuery 未注册 $

javascript - angularjs $watchCollection 方法如何保留 oldCollection 引用?

ruby-on-rails - Rails 4 真实性 token - 在 header 和表单隐藏输入中?