Javascript jQuery输出两个复选框的数据值,在另一个复选框上用逗号分隔

Javascript jQuery输出两个复选框的数据值,在另一个复选框上用逗号分隔,javascript,php,jquery,html,checkbox,Javascript,Php,Jquery,Html,Checkbox,假设我有两个这样的复选框,可以是100个复选框,因为它将在一个while循环中出现 <input type="checkbox" value="20" data="Apple"> <input type="checkbox" value="30" data="Mango"> 试试这个 $(document).ready(function(){ $('input[type=checkbox]').change(function(){ var total = 0

假设我有两个这样的复选框,可以是100个复选框,因为它将在一个while循环中出现

<input type="checkbox" value="20" data="Apple">
<input type="checkbox" value="30" data="Mango">
试试这个

$(document).ready(function(){
  $('input[type=checkbox]').change(function(){
    var total = 0;
    var txt = '';
    $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
      txt += $(this).attr('data')+', ';
    });
    $("#costdisplay").html(total);
    $("input[name=amount]").val(total);
    $("#value2").val(txt.slice(0,-2));
  });
});
试试这个

$(document).ready(function(){
  $('input[type=checkbox]').change(function(){
    var total = 0;
    var txt = '';
    $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
      txt += $(this).attr('data')+', ';
    });
    $("#costdisplay").html(total);
    $("input[name=amount]").val(total);
    $("#value2").val(txt.slice(0,-2));
  });
});

检查以下代码是否适用于您

$document.readyfunction{ $'input[type=checkbox]'。changefunction{ var合计=0; var-dataval=; $“输入:复选框:选中”。每个函数{ var val=$this.val; 总计+=isNaNparseFloatval?0:parseIntval; dataval+=$this.attr'data'+; }; $value1.5总计; $value2.valdataval.slice0,-2; }; }; //输出值的总和,即50
检查以下代码是否适用于您

$document.readyfunction{ $'input[type=checkbox]'。changefunction{ var合计=0; var-dataval=; $“输入:复选框:选中”。每个函数{ var val=$this.val; 总计+=isNaNparseFloatval?0:parseIntval; dataval+=$this.attr'data'+; }; $value1.5总计; $value2.valdataval.slice0,-2; }; }; //输出值的总和,即50 您应该使用data-*前缀的自定义属性来存储任意数据,这些数据可以使用

$document.readyfunction{ $'input[type=checkbox]'。changefunction{ var$elem=$'输入:复选框:选中', $amount=$input[name=amount], $costdisplay=$costdisplay, 数据值=[], 总数=0; 如果$elem.length{ $“输入:复选框:选中”。每个函数{ 总计+=isNaNparseInt$this.val?0:parseInt$this.val; dataValues.push$this.data'value';//从自定义属性迭代并填充数组 }; } $amount.valtotal; $costdisplay.valdataValues.join','; }; }; 苹果 芒果 您应该使用data-*前缀的自定义属性来存储任意数据,这些数据可以使用

$document.readyfunction{ $'input[type=checkbox]'。changefunction{ var$elem=$'输入:复选框:选中', $amount=$input[name=amount], $costdisplay=$costdisplay, 数据值=[], 总数=0; 如果$elem.length{ $“输入:复选框:选中”。每个函数{ 总计+=isNaNparseInt$this.val?0:parseInt$this.val; dataValues.push$this.data'value';//从自定义属性迭代并填充数组 }; } $amount.valtotal; $costdisplay.valdataValues.join','; }; }; 苹果 芒果
在计算总金额时,还应使用逗号分隔符使字符串具有数据值

请使用以下代码段:

$(document).ready(function(){
   $('input[type=checkbox]').change(function(){
   var total = 0;
   var data = '';
   $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
      if(data) {
          data += ','+ $(this).attr('data');
      } else {
          data += $(this).attr('data');
      }
   });
   $("#costdisplay").html(total);
   $("input[name=amount]").val(total);
   $("#value2").val(data);
 });
});

在计算总金额时,还应使用逗号分隔符使字符串具有数据值

请使用以下代码段:

$(document).ready(function(){
   $('input[type=checkbox]').change(function(){
   var total = 0;
   var data = '';
   $('input:checkbox:checked').each(function(){
      total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
      if(data) {
          data += ','+ $(this).attr('data');
      } else {
          data += $(this).attr('data');
      }
   });
   $("#costdisplay").html(total);
   $("input[name=amount]").val(total);
   $("#value2").val(data);
 });
});

获取数据属性的内容,实际上应该将其命名为data something,因为这是循环中自定义数据属性的正确语法,并将它们放入数组中。。。然后简单地加入该数组。获取数据属性的内容,这些属性实际上应该被命名为data something,因为这是循环中自定义数据属性的正确语法,并将它们放入数组中。。。然后简单地加入数组。工作完美。。最后一件事。。需要在第二、第三、第四之前留出一个空间。。。话。。表示当前它的Value1、Value2、Value3和所需的Value1、Value2、Value3..可以完成吗?只需在逗号txt+=$this.attr'data'+',后面添加空格即可;并添加-2,而不是-1$value2.valtxt.slice0,-2;如果只选择了一个值,则slice0,-2将匹配单词的最后一个字母..是。。天衣无缝。。接受它。。谢谢,伙计:工作得很好。。最后一件事。。需要在第二、第三、第四之前留出一个空间。。。话。。表示当前它的Value1、Value2、Value3和所需的Value1、Value2、Value3..可以完成吗?只需在逗号txt+=$this.attr'data'+',后面添加空格即可;并添加-2,而不是-1$value2.valtxt.slice0,-2;如果只选择了一个值,则slice0,-2将匹配单词的最后一个字母..是。。天衣无缝。。接受它。。谢谢你,伙计: