- - PR -
ASP.NET2.0 FireFox で RadioButtonList 内の全 ListItem を Disabled する。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-06-11 19:58
お世話になっています。
表題の件ですが、IEをメインに作成していたのですが、 FireFox で動作確認したら disabled されないという現象が確認出来ました。 そこで以下のようにしようとしたのですが、ListItem には ID が振れないので Visual Stdio に怒られてしまいます。 (この部分で怒られる ↓) (document.getElementById('" & Me.idRadioButtonList_0.ClientID & "').disabled = true;) <asp:CheckBox ID="idCheckBox" runat="server" Text="チェック" /> <asp:RadioButtonList ID="idRadioButtonList" runat="server"> <asp:ListItem value="0" Text="OK" Selected="true" /> <asp:ListItem value="1" Text="NG" /> </asp:RadioButtonList> Private Sub createJavaScript() Dim wScript As New StringBuilder With wScript .Append("<script language='JavaScript'>" & vbCrLf) .Append("<!--" & vbCrLf) .Append("function TestFunction() {" & vbCrLf) .Append(" if (document.getElementById('" & Me.idCheckBox.ClientID & "').checked) {" & vbCrLf) .Append(" if (navigator.appName.toUpperCase() == 'NETSCAPE') {" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList_0.ClientID & "').disabled = true;" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList_1.ClientID & "').disabled = true;" & vbCrLf) .Append(" } else {" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList.ClientID & "').disabled = '';" & vbCrLf) .Append(" }" & vbCrLf) .Append(" } else {" & vbCrLf) .Append(" if (navigator.appName.toUpperCase() == 'NETSCAPE') {" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList_0.ClientID & "').disabled = false;" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList_1.ClientID & "').disabled = false;" & vbCrLf) .Append(" } else {" & vbCrLf) .Append(" document.getElementById('" & Me.idRadioButtonList.ClientID & "').disabled = 'disabled';" & vbCrLf) .Append(" }" & vbCrLf) .Append(" }" & vbCrLf) .Append("}" & vbCrLf) .Append("//-->" & vbCrLf) .Append("</script>" & vbCrLf) End With ClientScript.RegisterStartupScript(Me.GetType(), "chk", wScript.ToString) End Sub if (navigator.appName.toUpperCase() == 'NETSCAPE') { の 部分もこれでいいのかどうかとっても疑問です。 どなたかご存知の方がいらっしゃればアドバイス宜しくお願いします。 | ||||
|
投稿日時: 2008-06-11 22:10
画面のほかの場所でRadioButtonを使っていないという前提であれば、こんな方法が。
# ただし、うまくいくかどうか試していません。 # FireFoxの確認環境が手元にないので…。 | ||||
|
投稿日時: 2008-06-11 23:29
例は、CheckedListBox ですが、ラジオボタンリストに置き換えて下さい。 ファイヤーの時だけこのスクリプトが動くので、ASPXにダイレクトで実装して もらった方が楽でしょう。コードでスクリプト文字列生成すると出来上がり でまごまごしちゃうので。 CheckedListBox にしろ、RadioButtonList にしろ、どっちでも、そのリスト アイテム群は <div> タグで囲まれるので、上記のように書けます。 | ||||
|
投稿日時: 2008-06-14 16:04
jQueryを利用すると1行のステートメントを記述するだけで実現できるんですけどね。
$("div input[type=checkbox]").attr("disabled","disabled"); $("div input[type=radio]").attr("disabled","disabled"); _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
1