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" />

Plsは見て、私にアドバイスをしてください..

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 に答える