Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript从选定字段计算总计?_Javascript_Jquery_Forms_Select_Input - Fatal编程技术网

如何使用Javascript从选定字段计算总计?

如何使用Javascript从选定字段计算总计?,javascript,jquery,forms,select,input,Javascript,Jquery,Forms,Select,Input,所以它应该计算在选择列表中选择的所有内容,每个值都以$sign开头,我认为这个$sign应该是js要检测的主字符串,不能是class或ID,因为最终用户会一直自己创建自定义表单 我做了一些html表单草图 所以,当用户从一个表单中选择金额时,js会自动将其实时添加到“总金额”字段中。当用户从另一个字段中选择另一个金额时,js会将其添加到当前总额中,并使用新的总额进行更新。所以,如果用户选择100美元和100美元,那么总数是200美元 我不知道。我是js新手,不知道如何解释。干杯。给你: $doc

所以它应该计算在选择列表中选择的所有内容,每个值都以$sign开头,我认为这个$sign应该是js要检测的主字符串,不能是class或ID,因为最终用户会一直自己创建自定义表单

我做了一些html表单草图

所以,当用户从一个表单中选择金额时,js会自动将其实时添加到“总金额”字段中。当用户从另一个字段中选择另一个金额时,js会将其添加到当前总额中,并使用新的总额进行更新。所以,如果用户选择100美元和100美元,那么总数是200美元

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

给你: $document.readyfunction{ $'select'.change函数{ var totalVal=0; $'select.add'。每个函数{ totalVal+=parseInt$this.val; }; $'input'.valtotalVal; }; }; 选择金额1 没有一个 $200 $300 选择金额2 没有一个 $200 $300 一些随机选择列表 没有一个 此列表没有美元符号,因此无论在此处选择什么,都不要计算它 总额
听起来你可能对我有些用处

不确定在使用JavaScript时是否从它开始,但它能完美地完成您想要实现的目标。您将从大量错误和丑陋的jQuery代码中解脱出来


查看我链接的教程,看看您是否喜欢。

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

<option value="200">$200</option>
我给了total字段一个id,以便您可以从JS引用它来更新它的值。如果出于某种原因不能这样做,我想你可以说$input[disabled].VALTOAL或类似的,但如果用户正在创建表单,这就不可靠了


演示:

如果你投了反对票,请留下评论并说明理由。否则就好像说了一声“福”就跑掉了。
<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);
    });
});