Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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_Arrays - Fatal编程技术网

Javascript 如何对输入值数组求和?

Javascript 如何对输入值数组求和?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在尝试使用一个输入值数组来对值进行实时求和 以下是一个例子: SUM <input id="proyected_analysis_expense_1" name="proyected_analysis_expense[name][]" type="text" value=""> <script type="text/javascript"> jQuery("#proyected_category_expense_1").live("change",

我正在尝试使用一个输入值数组来对值进行实时求和

以下是一个例子:

SUM  <input id="proyected_analysis_expense_1" name="proyected_analysis_expense[name][]" type="text" value="">    

<script type="text/javascript">

  jQuery("#proyected_category_expense_1").live("change", function(){
    pce1_value = parseFloat(jQuery("#proyected_category_expense_1").val());
    total = pce1_value ;

    jQuery("#proyected_analysis_expense_1").val(total.toFixed(2));  
   });    
 </script>  

  FIELD1: <input id="proyected_category_expense_1" name="flow_budget[flow_budget_details_attributes][1][amount]" type="text" value=""></td></tr>
SUM
jQuery(“#计划的#类别"费用"1”).live(“更改”,函数(){
pce1_value=parseFloat(jQuery(“#proyected_category_expense_1”).val();
总计=pce1_值;
jQuery(“#proyected#u analysis_expense_1”).val(总计.toFixed(2));
});    
字段1:
这是现场直播

问题是,总和在演示中不起作用

我希望使用动态信息

<script type="text/javascript">

  jQuery("#proyected_category_expense_1").live("change", function(){
    pce1_value = parseFloat(jQuery("#proyected_category_expense_1").val());
    pce2_value = parseFloat(jQuery("#proyected_category_expense_2").val());
    pce3_value = parseFloat(jQuery("#proyected_category_expense_3").val());
    .... ///this will continue without type
    total = pce1_value +  pce2_value +   .... ;   ///this will continue without type

    jQuery("#proyected_analysis_expense_1").val(total.toFixed(2));  
    jQuery("#proyected_analysis_expense_2").val(total.toFixed(2));  
    .... ///this will continue without type

   });    
 </script>  

jQuery(“#计划的#类别"费用"1”).live(“更改”,函数(){
pce1_value=parseFloat(jQuery(“#proyected_category_expense_1”).val();
pce2_value=parseFloat(jQuery(“#proyected_category_expense_2”).val();
pce3_value=parseFloat(jQuery(“#proyected_category_expense_3”).val();
..///这将在不使用类型的情况下继续
total=pce1_值+pce2_值+…;///这将在没有类型的情况下继续
jQuery(“#proyected#u analysis_expense_1”).val(总计.toFixed(2));
jQuery(“#proyected#u analysis_expense_2”).val(total.toFixed(2));
..///这将在不使用类型的情况下继续
});    

请有人能帮我在输入数组中求和吗?

问题是您将当前输入元素的值赋给总计,而不是求和

因此,不要添加多个更改处理程序,而是使用单个更改处理程序,然后添加所有目标输入元素值,如

jQuery(.group input[id^='proyected\u category\u expense'])。实时(“更改”,函数(){
var totalval=0.00;
var$group=jQuery(this).closest('.group');
$group.find(“输入[id^='proyected\u category\u expense\u']”)。每个(函数(){
totalval+=(+this.value | | 0)
});
$group.find('input[name=“proyected_analysis_expense[name][]”).val(totalval.toFixed(2));
});


(*)总额1

(*)字段1: (*)字段2: (*)字段3: (*)字段4: (*)字段5: (*)字段6: (*)字段7: (*)字段8: (*)字段9: (*)字段10:

(*)总额2

(*)字段01: (*)第0D2条:


问题在于您将当前输入元素的值分配给总计,而不是求和

因此,不要添加多个更改处理程序,而是使用单个更改处理程序,然后添加所有目标输入元素值,如

jQuery(.group input[id^='proyected\u category\u expense'])。实时(“更改”,函数(){
var totalval=0.00;
var$group=jQuery(this).closest('.group');
$group.find(“输入[id^='proyected\u category\u expense\u']”)。每个(函数(){
totalval+=(+this.value | | 0)
});
$group.find('input[name=“proyected_analysis_expense[name][]”).val(totalval.toFixed(2));
});


(*)总额1

(*)字段1: (*)字段2: (*)字段3: (*)字段4: (*)字段5: (*)字段6: (*)字段7: (*)字段8: (*)字段9: (*)字段10:

(*)总额2

(*)字段01: (*)第0D2条:


您无需在代码中进行更多更改,只需从文本框中删除更改后的方法即可。并把一个常见的变化事件,因为我把在演示。循环遍历每个文本框并求所有值的和。我试着把代码写成
jQuery(".group input[id^='proyected_category_expense_']").live("change", function() {
var totalval = 0.00;

   var $group = jQuery(this).closest('.group');
   $group.find("input[id^='proyected_category_expense_']").each(function() {
       totalval += (+this.value || 0)
   });

   $group.find('input[name="proyected_analysis_expense[name][]"]').val(totalval.toFixed(2));

   var finalsum = 0.00;    
    jQuery('input[name="proyected_analysis_expense[name][]"]').each(function(){
       finalsum += parseFloat(jQuery(this).val() || 0);
     });
  jQuery(".finalsum").html(finalsum);
});