2012-02-23 12 views
0

Javascriptを使用してasp RadioButtonListからラジオボタンを無効にしようとしています。このクライアントはJavaScriptのonClickを呼び出しJavascriptでラジオボタンリスト項目を無効にする

<asp:RadioButton ID="rbPlanner" runat="server" onclick="deselectRadioListItem('P');" /> 

...

function deselectRadioListItem(radioValue) { 
     var clientID = ('<%= rblSummaryOptions.ClientID %>'); 
     for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) { 
      if (document.getElementById(clientID + "_" + i.toString()).value == radioValue) { 
       (clientID + "_" + i.toString()).disabled === true; 
      } 
      else 
      { 
       (clientID + "_" + i.toString()).disabled === false; 
      } 
     } 
    } 

すべてが正常に機能しているように見える(文があれば、仕事火災、反復処理し、)しかし、RadioButtonコントロールを:ここで私が持っているものですロジックがヒットしても、ディスエーブルにはなりません。私は何が欠けていますか?ヘルプが大歓迎です、ありがとう!

答えて

1

比較のために===演算子が使用されます。 =を使用する必要があります。

function deselectRadioListItem(radioValue) { 
    var clientID = ('<%= rblSummaryOptions.ClientID %>'); 
    for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) { 
     if (document.getElementById(clientID + "_" + i.toString()).value == radioValue) { 
      document.getElementById(clientID + "_" + i.toString()).disabled = true; 
     } 
     else 
     { 
      document.getElementById(clientID + "_" + i.toString()).disabled = false; 
     } 
    } 
} 

あるいはほんの少しのクリーンアップ:

function deselectRadioListItem(radioValue) { 
    var clientID = ('<%= rblSummaryOptions.ClientID %>'); 
    for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) { 
     var objCurrentRdo = document.getElementById(clientID + "_" + i.toString()); 

     if (objCurrentRdo.value == radioValue) 
      objCurrentRdo.disabled = true; 
     else 
      objCurrentRdo.disabled = false; 
    } 
}​ 

追加情報: MDNにComparison Operatorsをチェックしてください。

+0

...あなたがここにいくつかのバグを持っている

document.getElementById(clientID + "_" + i.toString()).disabled = true; 

またはより良い

function deselectRadioListItem(radioValue) { var clientID = ('<%= rblSummaryOptions.ClientID %>'); for (i = 0; i < <%= rblSummaryOptions.Items.Count %>; i++) { document.getElementById(clientID + "_" + i).disabled = document.getElementById(clientID + "_" + i).value == radioValue; } } 

を入力して勝ちました無効にする。 – Ted

+0

@Ted、間違いはありますか?要素が存在し、その値が渡されるradioValueと等しい場合、上記のコードは機能するはずです。 –

+0

ああ!私はあなたのクリーンアップを試して、それは素晴らしい仕事、ありがとう! – Ted

0

これは確かに間違っています。

(clientID + "_" + i.toString()).disabled === true; 

は多分あなたは私が変更を行ったが、それはまだない

+0

私はそれが好きです!しかし、私は.... Microsoft JScript実行時エラー:オブジェクトが予想される – Ted

+0

@TedはgetElementByID要素を見つけられませんこの名前が存在することを確認します(clientID + "_" + i)、またはレンダリングされたHTMLを表示する彼らが何でありますか。 – Aristos

関連する問題