根据表单选择值查找数组的值

时间:2018-08-13 06:06:18

标签: javascript jquery arrays multidimensional-array

基本上,我有一个带有简单用户填写的自定义表单,然后他们选择用户数量和想要的产品数量。然后,我尝试如下图所示拉出数组的值,以在输入字段中产生#结果,我还将使用该表单提交该结果。

下面是我到目前为止所拥有的;

var arraymultidimensional = []
arraymultidimensional = [[$200,$250],[$300,$350],[$400,$450]]; 

结果:

位置0 [$ 200] [$ 250]
排名1 [$ 300] [$ 350]
排名2 [$ 400] [$ 450]

我到目前为止已经完成了这部分,但是我要在这里做的是,如果一个客户要选择2个用户和2个产品,基于上述情况,我想在输入字段中显示$ 350,但我不确定如何可以根据数组中位置的“计数”类型系统在数组中选择此值。

之所以要保持流畅是因为有更多可用的产品,而且还会增加更多的价格,因此阵列会变得更大一些。

2 个答案:

答案 0 :(得分:1)

数组索引始终从0开始,由于您有一个或多个用于选择项目的数组对应于2个用户和2个产品,因此您需要选择arraymultidimensional[1][1]。因此,对于任何输入值,您都需要将该值减去1,并且由于它是多维数组,因此请使用[][]

答案 1 :(得分:0)

最终解决了这个问题。

根据Ankit Agarwal的评论,这里是我的工作方式,以防其他人需要此解决方案并看到本文。希望这可以帮助其他人!

        var price = [
            [0, 0, 0, 0, 0],
            [11, 12, 13, 14, 15],
            [21, 22, 23, 24, 25],
            [31, 32, 33, 34, 35],
            [41, 42, 43, 44, 45],
            [51, 52, 53, 54, 55]
        ];

        $(document).on("change click", ".form-control", function() {
            var productsum = 0;
            var usersum = 0;

            $(".fieldRow .form-control").each(function(){
                productsum += +$(this).length;
            });

            $(".userinput").each(function(){
                usersum += +$(this).val();
            });

            $(".products-amount").text(numbersum);
            $(".users-quantity").text(usersum);
            $('#total').text(price[usersum][productsum]);
        });

基本上...根据用户从两个不同字段中选择的内容,一个是“用户”,一个是“产品”,它将从我设置的多重数组中选择不同的价格值。

之所以将它放在这样的数组中,主要原因是它会定期更新,并且可以根据所选值保持流畅。

如果您希望拥有自由类型的数字字段,则需要更改以下内容,以便它将捕获按键的释放并捕获值。

$(document).on("change click keyup", ".form-control", function() {

P.S。对'productsum'进行.length计数的原因是我正在复制带有多个产品选项的选项框。只需替换为.val()即可获取与其关联的值。

我仍在处理页面的其他元素,因此这不是最终产品,而是供他人修改以供自己使用的一个好开始!