2010-08-19 39 views
3

我正在尝试选取一系列复选框,并在输入字段中创建逗号分隔列表。这有点超出了我的jQuery技能。需要将选中的复选框的值输入到输入文件中,并用逗号分隔

下面是HTML的一个样本:

<input type="checkbox" value="Bill" id="CAT_Custom_173676_0" name="CAT_Custom_173676" />Bill<br /> 
<input type="checkbox" value="Dan" id="CAT_Custom_173676_1" name="CAT_Custom_173676" />Dan<br /> 
<input type="checkbox" value="Francis" id="CAT_Custom_173676_2" name="CAT_Custom_173676" />Francis<br /> 

我需要从这些复选框取值,并将其插入到这个领域

<input type="text" class="cat_textbox" id="CAT_Custom_172786" name="CAT_Custom_172786" maxlength="1024" /> 

所以,如果所有的复选框以上进行检查,输入字段的值将是“Bill,Dan,Francis”。

提交表单时可能发生此事件。

任何帮助,将不胜感激。

回答

6

可以使用map()这里创建包含选中的复选框的值的新的jQuery对象,然后使用get(),得到的阵列,然后用join(",")NB创建以逗号分隔的这些值的字符串:

var arr = ​$("input:checked").map(function() { return this.value; }​); 
$("#CAT_Custom_172786").val(arr.get().join(",")); 

Example

NB:可以实际省略加入(),因为阵列转换为字符串,并且自动接合逗号分隔。个人喜好在这里发挥作用。

+0

安迪,这是伟大的工作。有没有办法让它变成动态的,这意味着当用户选择复选框时,脚本会更新字段? – 2010-08-19 13:33:36

+0

@mmsa:我刚刚给答案添加了一个例子,将处理程序应用于* change()*事件。看看示例链接,代码就在你身边。 – 2010-08-19 13:36:31

+0

完美!感谢您及时的回复。我需要查看map()函数! – 2010-08-19 13:39:17

1

而且这将返回所有选中的复选框有名为“CAT_Custom_173676”

alert($("input[name=CAT_Custom_173676]:checked").map(function() { 
return this.value;}).get().join(",")); 
相关问题