0

私はチェックボックスのクラスとIDをjs関数に渡し、任意のチェックボックスのIDとクラスで機能するように動的にして、すべてをチェックし、すべてのチェックボックスをオフにします。ここにhtmlがあります。

    <input type="checkbox" name="reply_status[]" <?=$checked;?>  class="memebers" value="<?=$status[$e]['mail_sent_id']?>">
            </td>
            <td>
                <input type="checkbox" name="send_invoice[]" <?=$checked_send_invoice;?>  class="send_invoice" value="<?=$status[$e]['mail_sent_id']?>">
            </td>
            <td>
                <input type="checkbox" name="invoice_paid[]" <?=$checked_invoice_paid;?>  class="invoice_paid" value="<?=$status[$e]['mail_sent_id']?>">
            </td>

<td>
         <input type="checkbox" id="check_all_re" name="check_all" onclick="checkall_members('memebers','check_all_re')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>
            <td>
                <input type="checkbox" id="check_all_sv" name="check_all" onclick="checkall_members('send_invoice','check_all_sv')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>
            <td>
                <input type="checkbox" id="check_all_ip" name="check_all" onclick="checkall_members('invoice_paid','check_all_ip')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>

これがjs関数です

<script type="text/javascript">
function checkall_members(chechboxclass, chechboxid) {
    // var id = document.getElementById("check_all");
    alert();
    chechboxid = $('#' + chechboxid);
    chechboxclass = $('.' + chechboxclass);
    if (chechboxid.checked) {
        chechboxclass.attr('checked', 'checked');
    }
    else {
        chechboxclass.removeAttr('checked');
    }
}

助けていただければ幸いです

4

2 に答える 2

3

if..else ブロックを次のように置き換えます。

chechboxclass.prop('checked', chechboxid.prop('checked'));

ちなみにチェックボックスはなくチェックボックスです。

コードをさらに改善するには、インライン イベントを削除します。

$('input[name="check_all"]').on('change', function() {
    $($(this).data('toggleAll')).prop('checked', this.checked);
});

data-toggle-all=".send_invoice"これらのチェックボックスに etc. を追加するだけです。パラメータ値は、そのチェックボックスで切り替えたいチェックボックスのセレクターである必要があります。

すべてのname="check_all"要素が aの場合、代わりにclass使用してセレクターを高速化することもできますinput.whatever_classinput[name="check_all"]

于 2012-05-11T11:30:13.277 に答える
0

私の問題に対する最も簡単な解決策を整理しました

 <script type="text/javascript">

function checkall_members(chechboxclass, chechboxid) {

    var checkbox = document.getElementById(chechboxid);
    chechboxclass = $('.' + chechboxclass);

    if (checkbox.checked) {
        chechboxclass.attr('checked', 'checked');
    }
    else {

        chechboxclass.removeAttr('checked');
    }
}
 </script>

javascript の同じライブラリ内で id 要素を取得する必要があるため、機能していませんでした。私を助けてくれてありがとう

于 2012-05-12T13:24:10.663 に答える