javascript - 输入字段值的动态总计(在输入之后、提交之前)

标签 javascript jquery ajax forms

我通常不使用js,所以我希望能快速获胜。尽管有很多类似的问题,但我找不到 SO 的答案。

我有一个表格...

<input type="text" size="5" id="value1" name="value1" />
<input type="text" size="5" id="value2" name="value2" />

<input type="text" size="5" id="total" readonly="readonly" class="bckground" name="total" />

在输入内容后、提交表单之前,如何使用 ajax(或其他方式)将 value1 乘以 value2?

要求是在填写表单时简单地显示 value1 * value 2 的乘积。但如果我想将它添加到我的数据库中,如上所述,最好将其嵌入到表单字段中。

编辑:以下是我的尝试。但我只能更新一个 span 元素,而不是自动更新。如果字段为空,也会失败。

<script>
function calculateSum()
{
    value1 = parseInt(document.getElementById("value1").value);
    value2 = parseInt(document.getElementById("value2").value);

    sum = value1 * value2;

    document.getElementById("totalpledge").innerHTML = sum;
}
</script>

似乎可以使用按钮...

<input type="text" size="5" id="value1" name="value1" />
<input type="text" size="5" id="value2" name="value2" />

<span id="totalpledge">--</span>
<span><button onclick="calculateSum()">Submit!</button></span>

最佳答案

我会做这样的事情:

HTML

<input type="text" size="5" id="value1" name="value1" class="value"/>
<input type="text" size="5" id="value2" name="value2" class="value"/>

<input type="text" size="5" id="total" readonly="readonly" class="bckground" name="total" />

刚刚将 class="value" 添加到元素中,以便您可以轻松识别需要对总数做出贡献的所有元素。

jQuery:

jQuery(document).ready(function($) {
    var $total = $('#total'),
        $value = $('.value');
    $value.on('input', function(e) {
        var total = 1;
        $value.each(function(index, elem) {
            if(!Number.isNaN(parseInt(this.value, 10)))
                total = total * parseInt(this.value, 10);
        });
        $total.val(total);
    });
});

将事件处理程序绑定(bind)到 input 的所有 .value 元素(所有带有 class="value" 的元素) > 事件,只要输入的值发生变化就会触发该事件。然后它简单地迭代每个所需的输入并将它们的值相乘。最后,它将总值放入 #total 元素中。

jsFiddle demo

关于javascript - 输入字段值的动态总计(在输入之后、提交之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339345/

相关文章:

javascript - 硬刷新时找不到页面 - Reactjs

javascript - 我如何在 React Native 中设置滚动动画

android - 使用 $.load 加载本地 html

jquery - for 循环中的 AJAX 请求返回乱序结果

javascript - 将数据从表单插入MySQL数据库、javascript和flask

php - 有没有一种可靠的方法可以知道请求是否在 PHP 的 Ajax 上下文中?

javascript - 为loadChildren提供函数有什么好处?

Javascript 增量不起作用

javascript - 如何重新启动jquery中的setInterval,以便当用户单击计数器时重新启动?

php - Jquery Onclick 似乎对我不起作用