- PR -

ラジオボタンリストをjavascriptにて使用可・不可

投稿者投稿内容
未記入
会議室デビュー日: 2007/03/09
投稿数: 1
投稿日時: 2007-03-09 10:28
割り込み失礼します(m_ _)m

以下のような記述で回避できないでしょうか?

document.Form1.elements["RadioButtonList1_0"].disabled = false;

環境はIEでしたが、的を外した意見でしたら申し訳ありません。
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2007-03-09 23:18
引用:

ticketさんの書き込み (2005-01-27 09:13) より:
早速のお返事ありがとうございます。

htmlで見たソースは以下の通りです。
どうも「<span disabled="disabled">」のところが怪しいと思うのですが(プロパティのEnabled=trueにすると存在しないタグ)、idがついていませんし、.netで勝手に生成されます。
ここのdisabledを変更すればいけそうなのですが・・・。

またまた宜しくお願いします。

<table id="RadioButtonList1" disabled="disabled">
<tr>
<td>
<span disabled="disabled">
<input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="1" checked="checked" disabled="disabled" />
<label for="RadioButtonList1_0">ラジオボタン1</label>
</span>
</td>
<td>
<span disabled="disabled">
<input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="2" disabled="disabled" />
<label for="RadioButtonList1_1">ラジオボタン2</label>
</span>
</td>
</tr>
</table>



ご推察の通り、そのSPAN要素のDISABLED属性の値を変更すればお望みの動作になります。
ご存じとは思いますが一応補足しておくと、
そのSPAN要素はラジオボタンリストを無効(Enabled=false)にした場合にのみレンダリングされるもので、画面上での見た目をグレイアウトさせるためのものです。
(余談ですが、(X)HTMLでは、SPAN要素にDISABLED属性は定義されていません。)

で、件のSPANにはIDが振られていない(振ることができない)ので、どーやってアクセスしたもんかと。

コレは、DOMツリーを辿ることでアクセスすることが可能です。
上記の例でいうと、RadioButtonList1_0の親を辿ることで一つ上のSPAN要素にアクセスできます。
 document.getElementById("RadioButtonList1_0").parentElement.disabled = false;
もちろんそれぞれのINPUTと、一番外側のTABLE(id="RadioButtonList1")もdisabledになっていますので、お忘れないように。
 document.getElementById("RadioButtonList1").disabled = false;
 document.getElementById("RadioButtonList1_0").disabled = false;


一番外側のTABLEを指定すると、再帰的に子要素を辿ってdisabled=falseにするような関数を用意すると、いろいろと便利かもしれません。


# もう解決してたのかな?
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2007-03-09 23:53
引用:

Heさんの書き込み (2007-03-09 23:18) より:
# もう解決してたのかな?


2年前っすからねぇ(^^;
He
大ベテラン
会議室デビュー日: 2002/12/18
投稿数: 141
投稿日時: 2007-03-10 00:26
引用:

ぼのぼのさんの書き込み (2007-03-09 23:53) より:
2年前っすからねぇ


あ……

スキルアップ/キャリアアップ(JOB@IT)