下面的代码块用于生成复选框
$("#country").change(
function() {
$('.container').empty();
var item = $(this);
CtDataHandler.getCList(item.val(),{callback:function(data) {
for(var i=0; i<data.length; i++)
{
$('#cContainer').append('<input type="checkbox" class="ckbox" id = "'+ data[i].name +'" value="'+ data[i].name + '" /> ' + data[i].name + '<br />');
}
}, errorHandler:function(){
},async:false
});
});
我有一个单独的块来获取onchange方法中的checked值的值。因为我必须使用所选值调用单独的dwr。
$('.ckbox').click(function(){
var selectedValue=$("input.ckbox:checked").map( function(n){
return this.value;
}).get();
alert(selectedValue.join(','));
$('#selectedValue').append(selectedValue.join(','));
});
Selectedvalue是空的!!!
JSP代码
<td width="1%"></td>
<td width="50%" valign="top" id="catTd">
<div class="container" id="cContainer">
</div></td>
有关在此更改方法中获取所选复选框值的任何帮助吗?
答案 0 :(得分:1)
试试这个
//var selectedValue = new Array();
$('#categoryContainer').on('click','.ckbox',function(){
var selectedValue=$("input.ckbox:checked").map(function(n){
return this.value;
}).get();
alert(selectedValue.join(','));
$('#selectedValue').append(selectedValue.join(','));
});
这会将选中的值逗号分隔为#selectedValue
元素
注意:强>
您错过了复选框的值属性
$('#categoryContainer').append('<input type="checkbox" class="ckbox" id = "'+ data[i].name +'" value="'+ data[i].name + '" /> ' + data[i].name + '<br />');
答案 1 :(得分:0)
我看不到您为“selectedValue”
指定值的位置应该是:
$('#cContainer').on("click",".ckbox",function(){
var selectedValue= new Array();
$("input.ckbox:checked").each(function (){
selectedValue.push($(this).val());
});
alert(selectedValue.join(','));
$('#selectedValue').append(selectedValue.join(','));
});
当我们使用$ .map函数时,这指的是窗口对象,而不是当前元素。 还有一件事:
<input type="checkbox" class="ckbox"/>
我也看不到价值在哪里。例如:
<input type="checkbox" class="ckbox" value="abc"/>