2013-10-10 243 views
0

我有一個容器,我有複選框。我在容器外部有一個全選複選框。選擇所有複選框 - 收集值

<tr> 
<td width="33%">Category <br> <input type="checkbox" id="all_cat" name="catChkBox" class="ckbox"/> Select All/ Unselect All </td> 
</tr> 
    <tr> 
    <td width="50%" valign="top" id="catTd"> 
             <div class="container" id="categoryContainer"></div> 
            </td> 
    </tr> 

使用DWR調用我得到的複選框值被填充,在容器內。

... function(data.... // data has got the values to be displayed in container with checkboxes 
for(var i=0; i<data.length; i++) 
{ 
$('#catContainer').append('<input type="checkbox" data-name="' + data[i].id + '" name="catChkBox" class="ckbox" id = "' + data[i].id + '" value="' + data[i].id + '" /> ' + data[i].name + '<br/>'); 
list = data[i].name; 
catSL.push(data[i].id); 
} 
categories = $("input[name=catChkBox]:checked").map(function() { 
return $(this).data('name'); 
}).get(); 
}, errorHandler:function(){ 
},async:false 
}); 

我想要現在選擇所有選項。當我點擊容器外的全選複選框時,它應該選中容器內的複選框。同樣,取消選擇全部。我嘗試了下面的代碼,但它很有用。

$('#all_cat').click(function(){ 
    for(var i=0; i<categoryData.length; i++) //categoryData is the data which i get from dwr call 
    { 
    $(categoryData[i].id).prop('checked', isChecked('all_cat')); 
    } 
    }); 
function isChecked(checkboxId) { 
    var id = '#' + checkboxId; 
    return $(id).is(":checked"); 
} 

任何幫助?????

+0

如果'$(categoryData [I] .ID).prop( '檢查',器isChecked( 'all_cat'));'是'$( '#' + categoryData [I] .ID) .prop('checked',isChecked('all_cat'));'? – MadSkunk

回答

0

你可能只需要使用適當的jQuery選擇,選擇你的容器內所有的複選框,設置checked酒店在一次:

$('#all_cat').click(function() { 
    $('#catContainer input.ckbox').prop('checked', $(this).is(':checked')); 
}); 
0

這將設置div容器內的所有複選框,以相同的選中狀態的#all_cat複選框:

$('#all_cat').click(function(){ 
    $('#categoryContainer input:checkbox').prop('checked', $(this).is(':checked')); 
}); 
+0

它工作很好。有問題。 $( 「input.ckbox:檢查」)。每個(函數(){ \t \t \t \t \t \t selectedValue.push($(本).VAL()); \t \t \t \t \t \t});爲此,當我試圖提醒selectedValue它顯示,1,2爲什麼會出現?我想擺脫它。任何幫助? – sahana

+0

'$(「input.ckbox:checked」)'將在您的頁面上包含ckbox類的任何複選框。試試'$('#categoryContainer input.ckbox:checked')'。 –