如何使用jQuery获得选中的复选框值,并立即将其放入文本区?

就像下面的代码:

<html>
  <head>
  </head>

  <body>
    <div id="c_b">
      <input type="checkbox" value="one_name" checked>
      <input type="checkbox" value="one_name1">
      <input type="checkbox" value="one_name2">
    </div>  

    <textarea id="t"></textarea>
  </body>
</html>

如果id="c_d"由Ajax更新,altCognito代码的下面部分将不起作用。有什么好的解决办法吗?


当前回答

你的问题很模糊,但我认为这是你需要的:

$(function() { 
    $('input[type="checkbox"]').bind('click',function() {
        if($(this).is(':checked')) {
            $('#some_textarea').html($(this).val());
         }
   });
});

编辑:哦,好的。好了……之前没有HTML。无论如何,是的,我以为你的意思是把值放在一个文本区域,当它被点击。如果你想把选中的复选框的值放在页面加载的文本区域(可能有一个漂亮的逗号分隔),这将是简单的:

$(function() { 
    $('#c_b input[type="checkbox"]:checked').each(function() { 
        $('#t').append(', '+$(this).val());
    });
});

正如人们所做的那样,你也可以这样做来缩短我写的冗长的选择器:

$('#c_b :checkbox:checked').each(function() {
    $('#t').append(', '+$(this).val());
});

... 我完全忘了那条捷径。;)

其他回答

$("#t").text($("#cb").find(":checked").val())

试试这个。

var listCheck = [];
console.log($("input[name='YourCheckBokName[]']"));
$("input[name='YourCheckBokName[]']:checked").each(function() {
     console.log($(this).val());
     listCheck .push($(this).val());
});
console.log(listCheck);

我有一个类似的问题,这是我如何解决它使用上面的例子:

 $(".ms-drop").click(function () {
        $(function showSelectedValues() {
            alert($(".ms-drop input[type=checkbox]:checked").map(
               function () { return this.value; }).get().join(","));
        });
    });

不管怎样,你可能需要这样的东西:

 var val = $('#c_b :checkbox').is(':checked').val();
 $('#t').val( val );

这将获得页面上第一个选中的复选框的值,并将其插入id='textarea'的textarea中。

注意,在示例代码中,应该将复选框放在表单中。

如果你想在任何复选框被选中时立即插入它的值,那么这应该为你工作:

$(":checkbox").click(function(){
  $("#id").text(this.value)
})