Coloque os valores da caixa de seleção na entrada oculta com jQuery

Gostaria de preencher uma entrada oculta com os valores das caixas de seleção selecionadas com um espaço entre esses valores. Eu tentei o seguinte que, em teoria, deveria funcionar, mas não é ...

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>

Alguma ideia?

questionAnswers(2)

yourAnswerToTheQuestion