javascript - 如何使用 Javascript 计算选定字段的总计?

标签 javascript jquery forms select input

所以它应该计算选择列表中选择的所有内容,并且每个值以 $ 符号开头(我认为这个 $ 符号应该是 js 检测的主字符串或其他东西,不能是类或 ID,因为结束-用户总是自己创建自定义表单)

我做了一些 html 表单草图 http://jsfiddle.net/tbq8eo8b/2/

<div class="webform-component-select">
    <label>Select amount #1</label>
    <select>
        <option selected="selected">None</option>
        <option>$200</option>
        <option>$300</option>
    </select>
    <label>Select amount #2</label>
    <select>
        <option selected="selected">None</option>
        <option>$200</option>
        <option>$300</option>
    </select>
    <label>Some random select list</label>
    <select>
         <option selected="selected">None</option>
         <option>This list has no dollar sign, so do not calculate it whatever is selected in here</option>
    </select>
    <label>Total amount</label>
    <input disabled>
</div>

因此,当用户从一个表单中选择金额时,js 会自动将其添加到“总金额”字段中。当用户从另一个字段选择另一个金额时,js 会将其添加到当前总计并用新的总计更新。因此,如果用户选择 100 美元和 100 美元,则总计为 200 美元。

我不知道。我是js新手,不知道如何解释。干杯。

最佳答案

最简单的方法是为相关选项元素提供适当的 value 属性:

<option value="200">$200</option>

...这样您就不必处理美元符号。但是,如果由于某种原因您不能这样做,您可以使用正则表达式提取美元符号后面的值,同时忽略没有美元符号的字段:

$(document).ready(function () {
    var $selects = $("select").change(function (e) {
        var total = 0;
        $selects.each(function() {
            var val = this.value.match(/^\$(\d+)$/);
            total += val ? +val[1] : 0;
        });
        $("#total").val(total);
    });
});

我给了total字段一个id,这样你就可以从JS引用它来更新它的值。如果由于某种原因你不能这样做,我想你可以说 $("input[disabled]").val(total) 或类似的,但如果用户正在创建表格。

演示:http://jsfiddle.net/tbq8eo8b/6/

关于javascript - 如何使用 Javascript 计算选定字段的总计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004620/

相关文章:

javascript - hasClass 和条件不工作

jquery - 覆盖 jQuery 样式值

c# - 在 C# 中创建一个 winform dll 并使用它 F#

php - 允许用户使用 jquery 创建并提交最多 5 个文本框,并在 php 中将它们解析为一个数组?

javascript - 无法读取 leaflet.js 中未定义的属性 '1'

javascript - 如何在 jQuery 中切换图像的淡入/淡出效果?

javascript - D3.js - 动态改变序数比例

关于未引用变量的 JavaScript 闭包

javascript - 重写 jQuery 插件方法

javascript - 如何在没有确认页面的情况下提交Google表单数据?