-1

名前、年齢、2つのラジオボタンリスト(必須とID)などの特定のフィールドを使用するWebフォームを作成しました。1つのラジオボタンリスト「必須」の値の特定のフィールドを無効にしたい。「必須」ラジオボタンリストには、「はい」、「いいえ」の2つの項目があります。[はい]を選択すると、特定のフィールドが無効になり、その逆も可能になります。

texboxを無効にすることはできますが、中にアイテムをtaxIdおよびPANとしてリストする必要があるラジオボタンリスト「ID」を無効にすることはできません。私はそれのために次のコードを使用しました

function EnableDisableID() {

        if (document.getElementById("<%=rdID.ClientID %>") != null) {

            var IDList = document.getElementById('<%= rdID.ClientID  %>');


            var isOpenID;

            if (IDList != null) {

                var openSubID = IDList.getElementsByTagName("input");

                for (var i = 0; i < openSubID.length; i++) {

                    if (openSubID[i].checked) {

                        openSubID = openSubID[i].value;
                     }
                }
            }
            if (openSubID == 'true') {                    
                document.getElementById('<%=fbo1RadioButtonList.ClientID %>').disabled = false;
                document.getElementById('<%=txtFbo1TaxId.ClientID %>').disabled = false;

            }
            if (isOpenSubAccount == 'false') {

                alert("Printing..." + isOpenSubAccount);
                document.getElementById('<%=fbo1RadioButtonList.ClientID %>').disabled = true;
                document.getElementById('<%=txtFbo1TaxId.ClientID %>').disabled = true;
            }
        }
    }

FBO1TaxIdを無効にすることはできますが、ラジオボタンリスト「fbo1RadioButtonList」を無効にすることはできません。どうすればそれを達成できますか。その価値を個別に扱う必要がありますか?

4

2 に答える 2

0

答えがわかりました。私は自分のコードを少しいじって、以下の解決策にたどり着きました:

function EnableDisableTaxID() {

        if (document.getElementById("<%=rdOpeningSubAccount.ClientID %>") != null) {

            var openSubAccountList = document.getElementById('<%= rdOpeningSubAccount.ClientID  %>');
            var rdFbo1TaxId = document.getElementById('<%=fbo1RadioButtonList.ClientID %>');
            var rdFBO1Items = rdFbo1TaxId.getElementsByTagName('input'); 

            var isOpenSubAccount;

            if (openSubAccountList != null) {

                var openSubAccount = openSubAccountList.getElementsByTagName("input");

                for (var i = 0; i < openSubAccount.length; i++) {

                    if (openSubAccount[i].checked) {

                        isOpenSubAccount = openSubAccount[i].value;                            
                    }
                }
            }               
            if (isOpenSubAccount == 'true') {
                for (var i = 0; i < rdFBO1Items.length; i++) {
                    rdFBO1Items[i].disabled = false; 
                }        
               document.getElementById('<%=txtFbo1TaxId.ClientID %>').disabled = false;

            }
            if (isOpenSubAccount == 'false') {

                for (var i = 0; i < rdFBO1Items.length; i++) {
                    rdFBO1Items[i].disabled = true;
                }                     
                document.getElementById('<%=txtFbo1TaxId.ClientID %>').disabled = true;
            }
        }
    }
于 2012-10-04T07:04:06.653 に答える
0

ラジオ ボタンをループして、それぞれを無効にする必要があります。ボタンがフォーム内にあり、フォームへの参照がある場合、ボタンの共通名を使用してコレクションを取得できます。コレクションをループして、各ボタンのdisabledプロパティを設定します。

ボタンを有効または無効にする場合は、次のような条件を使用して値を設定できます。

var rbuttons = form.radioName;
var disabled = true;   // disables buttons, set to false to enable

for (var i=0, iLen=rbuttons.length; i<iLen; i++) {
  rbuttons[i].disabled = disabled;
}

ボタンを有効にするには、disabled変数を false に設定します。

于 2012-10-04T07:04:17.097 に答える