2

我想用选定复选框的值填充隐藏输入,这些值之间有一个空格。我已经尝试了以下理论上应该可行的方法,但它不是......</p>

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>

有任何想法吗?

4

2 回答 2

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();

检查小提琴

于 2012-11-08T15:58:02.990 回答
3

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

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

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

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

});​

请参阅此演示

于 2012-11-08T15:58:51.967 回答