使用以下代码创建动态checkboxes
。
var list = new Array();
for(var i=0; i<data.length; i++)
{
$('#cContainer').append('<input type="checkbox" name="catChkBox" class="ckbox"
id = "'+ data[i].id +'" value="'+ data[i].id + '" /> ' + data[i].name + '<br
/>');
}
上面的代码在document.ready
函数内。我想收集检查值,即。在data[i].name
之外的document.ready
并将其放入列表中。
我尝试了以下仅显示id
的代码。但我需要的是文本。这是data[i].name
(我从dwr电话中得到这个)
function showSelectedValues()
{
alert("--------------" + $("input[name=catChkBox]:checked").map(
function () {return this.value;}).get().join(","));
}
我将从其他方法调用showSelectedValues()
,我将使用这些值。
对此有任何想法???
答案 0 :(得分:2)
$("input[name=catChkBox]:checked").val();
答案 1 :(得分:1)
为每个checkbox
添加label
var list = new Array();
for(var i=0; i<data.length; i++)
{
$('#cContainer').append('<input type="checkbox" name="catChkBox" class="ckbox"
id = "'+ data[i].id +'" value="'+ data[i].id + '" /><label for="'+ data[i].id +'">' + data[i].name + '</label><br/>');
}
然后使用下面的代码获取与每个已检查checkbox
$("input[name=catChkBox]:checked + label").text();
更新:
将值保存到数组中使用以下代码:
function ConvertSelectedValuesToList()
{
list = $("input[name=catChkBox]:checked + label").map(function () {
return $(this).text();
}).get();
}
如果你想创建一个逗号分隔的值字符串,那么在join(",")
之后添加get()
。但是它不再是一个数组了。
答案 2 :(得分:1)
data[i].name
永远不会写入输入元素,因此不属于它。它只是元素之后的文本。
我建议添加一个包含您感兴趣的值的数据属性也,类似于:
var list = new Array();
for (var i = 0; i < data.length; i++) {
$('#cContainer').append('<input type="checkbox" data-name="' + data[i].name + '" name="catChkBox" class="ckbox" id = "' + data[i].id + '" value="' + data[i].id + '" /> ' + data[i].name + '<br/>');
}
请注意上面的data-name="' + data[i].name + '"
。
然后您可以更新您的方法以简单地查询数据属性,类似于:
function showSelectedValues() {
alert("--------------" + $("input[name=catChkBox]:checked").map(function () {
return $(this).data('name');
}).get().join(","));
}
DEMO - 使用数据属性