0

我有一个列表视图,它包含 n 个复选框。单击第一个复选框时,我想启用/禁用。我已经在 jquery 中编写了代码。但它采用了页面中的所有复选框。我只需要启用/禁用选定的行。

function EnableCurrentRowControls(chkID) 
{
        var chkBox = document.getElementById(chkID);
        var chkIDList = document.getElementsByTagName("input");
        for (i = 0; i < chkIDList.length; i++) 
        {
            if (chkIDList[i].type == "checkbox" && chkIDList[i].id != chkBox.id) {

                 if (chkIDList[i].type == "checkbox" && chkIDList[i].id != chkBox.id) 
                   {
                        chkIDList[i].enabled = false;
                   }
            }
        }
} 

ListView控件中的调用函数

<asp:CheckBox ID="chkUserBoardMaping" OnClick="javascript:EnableCurrentRowControls(this.id)"
                                                            runat="server" />

请看看并建议我..

4

1 回答 1

1

可能正在尝试这样的事情:

function EnableCurrentRowControls(element) {
        if ($(element).closest('tr').find('input[type=checkbox][id*=chkUserBoardMaping]').is(':checked')) {

            $(element).closest('tr').find('input[type=text][id*=myTextBox]').removeAttr("disabled");
        }
        else {
             $(element).closest('tr').find('input[type=text][id*=myTextBox]').prop("disabled");

        }
    }

您还必须更改此设置(1. 仅将其作为参数传递 2. 将 onclick 事件更改为 onchange):

<asp:CheckBox ID="chkUserBoardMaping" onchange="javascript:EnableCurrentRowControls(this)"
                                                        runat="server" />

确保您更改了控件 (myTextBox) 名称!

于 2013-09-30T11:25:11.190 回答