0

チェックボックスがあり、その上にラベルがあり、チェックボックスの画像があります。チェックボックスをクリックすると、内側のチェックボックスがオンになり、チェックされている場合とチェックされていない場合にラベルの画像が切り替わります。 . 私はこれを試してみました

if(chkSelectAll)
{
    var allSelected = true;             
    for (var i = 0; i < document.forms[0].elements.length; i++)
    {
        var e = document.forms[0].elements[i];
        if (e.type == 'checkbox')
        {
            var strName="";
            strName = e.name;
            if(strName.indexOf(datalist) >= 0 && !e.checked)
            {
                allSelected = false;
                break;
            }                           
        }
    }
    if(allSelected)
        currentBox.checked = true;
    else
        currentBox.checked = false;
}

私のHTMLコードは

すべて選択

' Text='<%#GUISupport.GUIUtils.ViewEncode(DataBinder.Eval(Container.DataItem, "Label").ToString()) %>' onclick="CheckSelectAll(this,chkSelectAllPrimaryCustomFields,'lstPrimaryCustomFields');" runat="サーバー" ID="chkPrimaryCustomFields" /> 

事前に感謝します。

ページがロードされたときにロードされる共通コードが欲しい

4

3 に答える 3

0

このコードに従うことができます。htmlコードで

<table>
            <thead>
                <tr>
                    <th
                        @using (Html.BeginForm("admin","Admin",FormMethod.Get))
                        {
                            <input type="checkbox" name="ckbCheckAll" id="ckbCheckAll" value="" onclick="checkAll();" />
                        }
                    </th>
                    <th>No</th>
                    <th>Title</th>
                </tr>
            </thead>

            @foreach(var item in Model)
            {
                i++;
                <tr>
                    <td>
                        <input type="checkbox" name="cid" id="@i" value="@item.ID" />
                    </td>
                    <td>@i</td>
                    <td>@item.Title</td>
                </tr>
            }
</table>

そして、javascript の関数 checkAll():

function checkAll() {
        var check = document.getElementById("ckbCheckAll").checked;
        for (var i = 1; i <= document.getElementsByName("cid").length; i++) {
            document.getElementById(i).checked = check;
        }
    }

上記のコードは機能しています。お役に立てれば幸いです

于 2013-10-25T07:51:44.743 に答える
0

if 条件が true の場合、ラベルを変更してみませんか?

for ループでは、それに応じてラベルを変更します

for (var i = 0; i < document.forms[0].elements.length; i++) {

//change labels

}
于 2013-10-25T07:00:49.373 に答える
0

コード内のラベルをまったく変更していません。このスクリプトが指す HTML を投稿してください。これを達成する方法について、より詳細な解決策を提供できます。

(この回答は回答に基づいて編集されます)。

于 2013-10-25T07:20:37.337 に答える