2012-11-08 39 views
2

我想填充一个隐藏的输入与选定的复选框的值与这些值之间的空间。我已经试过这在理论上应该工作在下面,但它不是...把复选框的值与隐藏的输入与jQuery

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> 

任何想法?

+0

它工作得很好http://jsfiddle.net/vysZd/ –

+0

似乎工作对我来说:http://jsfiddle.net/96qfB/你是否试图更新结果时复选框被更改以及? – adeneo

+0

你的代码工作正常,看到这里 - > https://tinker.io/4384e – Nelson

回答

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

+0

非常感谢,这工作正如我想要的!愚蠢的我在文档上运行它:@! – Nick

+0

@Nick ..很高兴有帮助:) –

3

你只需要改变你的选择,重视你的脚本的一些事情。例如:

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

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

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

});​ 

看到这个DEMO