将所选复选框值发送到另一个方法

时间:2013-04-11 05:58:44

标签: jquery checkbox

下面的代码块用于生成复选框

 $("#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>

有关在此更改方法中获取所选复选框值的任何帮助吗?

2 个答案:

答案 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"/>