ドロップダウンをクリックするときにチェックされているチェックボックスを削除し、ドロップダウンリストのチェックボックスをオンにします。たとえば、私はこのコードを持っています
<input id="item-1" type="checkbox">item1</input>
<input id="item-2" type="checkbox">item2</input>
<input id="item-3" type="checkbox">item3</input>
<select id="dropdown">
<option value="1,2">check the item 1 and 2</option>
<option value="1,3">check the item 1 and 3</option>
<option value="1,2,3">check the item 2 and 3</option>
</select>
これが私のjqueryコードです
$('#dropdown').live("change", function() {
//remove all the chekced checkboxes
$('input:checkbox').removeAttr('checked');
//check chekboxes
var selected = $('#dropdown :selected').val();
dataitem = selected.split(',');
$.each(dataitem, function(key, item) {
$('#item-' + item).attr('checked', true);
});
});
ここで起こったことは、このコードを追加すると
$('input:checkbox').removeAttr('checked');
チェックされているチェックボックスはすべて削除されますが、ドロップダウンリストで選択しても追加されません。しかし、そのコードを削除すると、チェックボックスがオンになりますが、前にチェックしたチェックボックスでは削除されません。