使用jQuery将复选框值放入隐藏的输入中

时间:2012-11-08 15:55:32

标签: jquery forms

我想使用所选复选框的值填充隐藏的输入,并在这些值之间留一个空格。我已经尝试过以下理论应该可以工作但不是......

JS:

$(document).ready(function () {


      var vals = $(':checkbox:checked').map(function(){
         return $(this).val();
      }).get().join(',');

      // save the values to a hidden field
      $('#tags').val(vals);


});

HTML

 <form>

  <input type="checkbox" value="test1" id="test1"><label>Test</label>
  <input type="checkbox" value="test2" id="test2"><label>Test2</label>
  <input type="checkbox" value="test3" id="test3"><label>Test3</label>

  <input type="text" value="" id="tags">

</form>

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

:checkbox已弃用

而不是

$(':checkbox:checked')

使用

$('input[type="checkbox"]:checked')

checkboxes are checked时没有document is Ready ..先设置它们然后尝试...

<强> HTML

  <input type="checkbox" value="test1" id="test1" checked><label>Test</label>
  <input type="checkbox" value="test2" id="test2" checked><label>Test2</label>
  <input type="checkbox" value="test3" id="test3"><label>Test3</label>
  <input type="text" value="" id="tags">

<强>的Javascript

function Populate(){
    vals = $('input[type="checkbox"]:checked').map(function() {
        return this.value;
    }).get().join(',');
    console.log(vals);
    $('#tags').val(vals);
}

$('input[type="checkbox"]').on('change', function() {
    Populate()
}).change();

<强> Check Fiddle

答案 1 :(得分:3)

您只需更改选择器并将脚本附加到某个事件即可。例如:

$('input[type=checkbox]').change(function() {

    var vals = $('input[type=checkbox]:checked').map(function() {
        return $(this).val();
    }).get().join(',');

    $('#tags').val(vals);

});​

请参阅此DEMO