2

アプリケーションでチェックボックスを使用していますが、努力しても解決できない問題があります。

function allChecked(status,set){
    alert(set);
    if(status)
        $('input[type=checkbox]').attr('checked','true');
    else
        $('input[type=checkbox]').attr('checked',''); 
    }

上記の関数は、「ステータス」の値に応じて、すべてのチェックボックスを選択または選択解除します。「set」は、いくつのチェックボックスを選択するかを指定する数値です。したがって、「set」の値に応じてチェックボックスを選択するコードが必要です。どうすればいいですか?

4

3 に答える 3

1

最初のN個のチェックボックスを(DOMに表示される順序で)オンまたはオフにする場合は、 sliceメソッドを使用してこれを実行できます。

function allChecked(status, set) {
    var checkboxes = $('input[type=checkbox]').slice(0, set);

    if (status) {
        checkboxes.attr('checked', 'checked');
    }
    else {
        checkboxes.removeAttr('checked');
    }
}

デモ: http: //jsfiddle.net/brianpeiris/Xs9Vc/

于 2012-12-25T05:40:33.633 に答える
1

編集 :

関数呼び出しの場合、以下のコードを使用できます

function allChecked(){
    if($('#selectall').attr('checked', this.checked))
        $(".case").attr("checked", "checked");
    else
       $(".case").removeAttr("checked"); 

    }

: http: //jsfiddle.net/ipsjolly/wUgwz/7/

関数を呼び出す代わりに ID を使用することもできます

$(function(){

  // add multiple select / deselect functionality
  $("#selectall").click(function () {
      $('.case').attr('checked', this.checked);
  });

  // if all checkbox are selected, check the selectall checkbox
  // and viceversa
  $(".case").click(function(){

    if($(".case").length == $(".case:checked").length) {
        $("#selectall").attr("checked", "checked");
    } else {
        $("#selectall").removeAttr("checked");
    }

  });
});​

: http: //jsfiddle.net/ipsjolly/wUgwz/8/

ソース: http://viralpatel.net/blogs/multiple-checkbox-select-deselect-jquery-tutorial-example/

于 2012-12-25T05:24:07.833 に答える
0

このようなことを試してください

function allChecked(status,set){
alert(set);
if(status)
    $('input[type=checkbox]:lt('+set+')').attr('checked','true');
else
    $('input[type=checkbox]:lt('+set+')').attr('checked',''); 
}
于 2012-12-25T07:55:03.013 に答える