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="server" ID="chkPrimaryCustomFields" /> 

任何人都可以帮助我提前谢谢。

我想要加载页面时加载的公共代码

4

3 回答 3

0

如果条件为真,为什么不更改标签?

在 for 循环中相应地更改标签

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

//change labels

}
于 2013-10-25T07:00:49.373 回答
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

您根本没有更改代码中的标签,请发布此脚本指向的 HTML,以便我们为您提供更详细的解决方案,以了解如何实现这一点。

(此答案将根据回复进行编辑)。

于 2013-10-25T07:20:37.337 回答