0

ポップアップにチェックボックスリストがあります。jqueryでselectallチェックボックスリスト項目関数を使用しました。問題は、selectall チェックボックスをチェックすると、ポップアップと Web ページのすべてのチェックボックスリスト項目が選択されることです。ポップアップでのみチェックボックスリストの項目のみを選択する方法..私のコードとして

 <td>   <div style="text-align: left; margin: auto;">
                    <asp:CheckBox ID="chkSelectReportAll" runat="server" Text="Select All" onclick="checkall()"/>
                    <asp:CheckBoxList ID="chkReportLst" runat="server">
                    </asp:CheckBoxList>
        </div>
 </td>

私のスクリプトとして

function checkall() {
   $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').click(
    function () {
     if (document.getElementById('chkReportLst'))                    
   $("INPUT[type='checkbox']").attr('checked', $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked'));
            });
        } 

助言がありますか ??

4

5 に答える 5

1

確かにそうですが、それを行う前に、ポップアップ内のチェックボックスに class="popupCheckbox" を追加する必要があります

jQuery 1.6+

新しい.prop()関数を使用します。

$(".popupCheckbox").prop("checked", true);
$(".popupCheckbox").prop("checked", false);

jQuery 1.5 以下

.prop() 関数は使用できないため、 .attr()を使用する必要があります。

チェックボックスをオンにするには (checked 属性の値を設定して)、次のようにします。

$('.popupCheckbox').attr('checked','checked')

チェックを外すには(属性を完全に削除することにより)、次のようにします

$('.popupCheckbox').removeAttr('checked')
于 2012-06-14T12:38:55.250 に答える
1

ID を に割り当てます<div>。これにより、セレクターを内部の入力のみに絞り込むことができます。

<div id="cntCheckBoxList" style="text-align: left; margin: auto;">
    <asp:CheckBox ID="chkSelectReportAll" runat="server" Text="Select All" onclick="checkall()"/>
    <asp:CheckBoxList ID="chkReportLst" runat="server"></asp:CheckBoxList>
</div> 

セレクターは次のようになります。

$("#cntCheckBoxList INPUT[type='checkbox']").attr('checked',    $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked')); 
于 2012-06-14T12:39:01.383 に答える
0

現時点での問題は、でチェックボックスを選択しているときに$("INPUT[type='checkbox']")、jQuery がページ全体のすべてのチェックボックスを調べていることです。

必要なのは、に属するすべてのチェックボックスですchkReportLst

読みやすくするために、関数を使用して jQquery サブセレクターとしてこれを行う傾向があり.find()ます。

したがって、最初にチェックボックスリストを選択し、次に .find() を使用してそのリストの子要素であるチェックボックスを選択します。

$("#chkReportLst").find("INPUT [type='checkbox']").attr('checked', $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked'));

于 2012-06-14T12:40:52.410 に答える
0

この行を変更

$("INPUT[type='checkbox']").attr('checked',
   $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked'));

$("#any_parent_in_popup INPUT[type='checkbox']").attr('checked',
       $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked'));

#any_parent_in_popupポップアップ内にある任意の親要素 ID に置き換え、すべてのチェックボックスを含めます。持っていない場合は、追加することを検討できます。

于 2012-06-14T12:36:53.863 に答える
0
function checkall() {
   $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').click(function () {
      $("#chkReportLst INPUT[type='checkbox']").attr('checked', $('#MainContent_uscOptionsPOPUP_chkSelectReportAll').is(':checked'));
   });
} 
于 2012-06-14T12:38:37.553 に答える