我有一组复选框,它们都具有相同的名称,称为“部门”。每当用户检查这些Department
复选框中的一个或多个时,我希望通过AJAX将值分段并发送,以便它可以根据所选值检索更多数据。
到目前为止,我已经这样做了:
$('#user-Departments input[name="Department"]').change(function () {
var selected = $('#user-Departments input[name="Department"]').serialize();
console.log(selected);
});
因此,如果任何Department
复选框在id为user-Departments
的div中发生更改,那么我要求JQuery将值设置为seralize。该值包含在每个复选框的ID属性中。但我的控制台显示了这一点:
Department=4&Department=9
如何将值4和9放入以逗号分隔的字符串中,例如“4,9”以便我可以将其作为列表传递给我的Web服务器(Coldfusion)?
添加JSFIDDLE: http://jsfiddle.net/mjcJ4/
答案 0 :(得分:2)
$(document).ready(function() {
$("input[name='department']").change(function() {
var departmentIds = [];
var selectedDepartments = $("input[name='department']:checked").each(function(){
departmentIds.push($(this).val());
});
//post the values to the url
$.post("/your/url/", JSON.stringify(departmentIds));
});
});
我已将值添加到集合中,然后将值转换为json以用于帖子。请注意我是如何获得" Checked" (当其中一个复选框被勾选或未勾选时)。
答案 1 :(得分:2)
$('#user-Departments input[name="Department"]').change(function () {
var selected = [];
$('#user-Departments input:checked[name="Department"]').each(function(index) {
selected.push($(this).val());
});
console.log(selected.toString());
});
答案 2 :(得分:1)
使用.map()
我会更有效率
$('#user-Departments input[name="Department"]').change(function () {
var selected = $('#user-Departments input[name="Department"]:checked').map(function() {
return this.value;
}).get().join(',');
console.log(selected);
});