0
<div class="myBox">
    <input type = "checkbox" id = "Banana" value = "Banana" />
    <input type = "checkbox" id = "Orange" value = "Orange" />
    <input type = "checkbox" id = "Apple" value = "Apple" />
    <input type = "checkbox" id = "Papaya" value = "Papaya" />
    <input type = "checkbox" id = "Watermelon" value = "Watermelon" />
    <input type = "checkbox" id = "Grape" value = "Grape" />
</div>

<div id="display">
</div>

如何将其存储到数组中并在有人选中复选框时立即将所有复选框选中的值显示到“#display”div中,并在某人未选中复选框时删除该值。例如,当我单击 Banana 时,“#display” div 将显示 Banana,然后我继续单击 Grape,它将显示 Banana, Grape。取消选中复选框时,从“#display”div 中删除单词“Banana”,这样“#display”div 将只显示“Grape”。在jQuery中。

任何帮助将不胜感激。

4

3 回答 3

3

使用map()函数来获取检查的值...并join()用 . 加入数组,

试试这个

$('.myBox  input:checkbox').change(function(){
  var tempValue='';
  tempValue=$('.myBox  input:checkbox').map(function(n){
      if(this.checked){
            return  this.value;
          };
   }).get().join(',');

   $('#display').html(tempValue);
})

或者

简单的方法

 $('.myBox  input:checkbox').change(function(){
  var tempValue='';
tempValue=$('.myBox  input:checkbox:checked').map(function(n){  //map all the checked value to tempValue with `,` seperated
            return  this.value;
   }).get().join(',');

   $('#display').html(tempValue);
})

在这里摆弄

于 2013-07-27T18:53:08.107 回答
0

你将需要这样的东西:

$(".myBox").on("change", "[type=checkbox]", function () {
    var s = "";
    $(".myBox [type=checkbox]:checked").each(function () {
        s += this.value + ",";
    });
    $("#display").html(s.slice(0, s.length -1));
});

每次change在文本框中发生 a 时,each事件都会获取checked复选框的值并将它们添加到div.

演示:http: //jsfiddle.net/hungerpain/cqZcX/

于 2013-07-27T18:54:18.813 回答
0
$(".myBox").on("change", "[type=checkbox]", function () {
    var s = "";
    $(".myBox [type=checkbox]:checked").each(function () {
        s += (s == '') ? this.value : "," + this.value;
    });
    $("#display").html(s);
});
于 2013-07-27T18:58:33.577 回答