Javascript jQuery-通过将值乘以复选框值来计算该值
我需要计算值Javascript jQuery-通过将值乘以复选框值来计算该值,javascript,jquery,html,cakephp-3.0,Javascript,Jquery,Html,Cakephp 3.0,我需要计算值total,它是初始值(比如说10)和因子a、B、C和D的乘积,它们等于,比如说2、3、4和5 用户应通过选中相应的框来选择因素的组合。问题是,我需要以一种形式独立地重复多次,而下面的解决方案(针对其中两个部分)并没有正确地将此过程分开。如果这些是文本值,我会这样做,例如,var$text=$(“.result”,$section) 基本上,我不明白如何将数值变量与这些部分联系起来。此外,如果在结果字段中有此初始值(10),即使没有选中任何框,也会很好 $(文档).ready(函数
total
,它是初始值(比如说10)和因子a、B、C和D的乘积,它们等于,比如说2、3、4和5
用户应通过选中相应的框来选择因素的组合。问题是,我需要以一种形式独立地重复多次,而下面的解决方案(针对其中两个部分)并没有正确地将此过程分开。如果这些是文本值,我会这样做,例如,var$text=$(“.result”,$section)代码>
基本上,我不明白如何将数值变量与这些部分联系起来。此外,如果在结果
字段中有此初始值(10),即使没有选中任何框,也会很好
$(文档).ready(函数(){
$(“.factor复选框”)。单击(函数(事件){
var$section=$(this).closest(“.section”);
var总计=10;
$(“.factor复选框:选中”).each(函数(){
total*=parseInt($(this.val());
});
$('.result').val(总计);
});
});代码>
A.
B
C
D
结果
A.
B
C
D
结果
$(文档).ready(函数(){
$(“.factor复选框”)。单击(函数(){
var$section=$(this).closest(“.section”)
var总计=10;
$section.find(“.factor复选框:选中”).each(函数(){
total*=parseInt($(this.val());
});
$section.find(“.result”).val(总计);
});
});代码>
A.
B
C
D
结果
A.
B
C
D
结果
$(文档).ready(函数(){
$(“.factor复选框”)。单击(函数(){
var$section=$(this).closest(“.section”)
var总计=10;
$section.find(“.factor复选框:选中”).each(函数(){
total*=parseInt($(this.val());
});
$section.find(“.result”).val(总计);
});
});代码>
A.
B
C
D
结果
A.
B
C
D
结果
我假设您希望行是独立的:
$(文档).ready(函数(){
$(“.factor复选框”)。单击(函数(事件){
var$section=$(this).closest(“.section”),
initial=parseInt($section.find('.result')。data('initial')),
总计=初始值;
$section.find(“输入:选中”)。每个(函数(){
total*=parseInt($(this.val());
});
$section.find('.result').val(总计===初始值?初始值:总计);
});
//获取总值
$(“.res_按钮”)。单击(函数(){
var$section=$(this).closest(“.section”);
var total=$section.find('.result').val();
控制台日志(总计);
});
});代码>
A.
B
C
D
结果
结果1行
A.
B
C
D
结果
结果2行
我假设您希望行是独立的:
$(文档).ready(函数(){
$(“.factor复选框”)。单击(函数(事件){
var$section=$(this).closest(“.section”),
initial=parseInt($section.find('.result')。data('initial')),
总计=初始值;
$section.find(“输入:选中”)。每个(函数(){
total*=parseInt($(this.val());
});
$section.find('.result').val(总计===初始值?初始值:总计);
});
//获取总值
$(“.res_按钮”)。单击(函数(){
var$section=$(this).closest(“.section”);
var total=$section.find('.result').val();
控制台日志(总计);
});
});代码>
A.
B
C
D
结果
结果1行
A.
B
C
D
结果
结果2行
感谢您的快速建议,但您版本中的第二个结果受第一个结果的影响。如果我在第一个原始版本中检查A,我将得到20,在第二个原始版本中得到40。感谢您的快速建议,但是您版本中的第二个结果受第一个结果的影响。如果我在第一次未经加工的情况下检查A,我将得到20,在第二次得到-40。太好了!谢谢有没有办法从一开始就在结果字段中输入10?是的,您可以通过向结果添加value
属性,将其作为初始值放在结果字段中,如value=“10”
。检查更新后的答案。我可以从该属性读取total的初始值吗?现在所有条目都需要10。@Vincent Vega当然,您可以随时读取该属性的值。我更新了我的答案,我想我明白了。问题是“10”是硬编码的。相反,您需要在附加属性“data initial”中保留初始值,如果未选中复选框,则将字段设置为其初始值。检查更新的答案。完美!谢谢有没有办法从一开始就在结果字段中输入10?是的,您可以通过向结果添加value
属性,将其作为初始值放在结果字段中,如value=“10”
。检查更新后的答案。我可以从该属性读取total的初始值吗?现在所有条目都需要10。@Vincent Vega当然,您可以随时读取该属性的值。我更新了我的答案,我想我明白了。问题是“10”是硬编码的。相反,您需要在附加属性“data initial”中保留初始值,如果未选中复选框,则将字段设置为其初始值。检查更新的答案。