2012-11-08 37 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