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 に答える