WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ラジオボタンの検出

0:[投稿] J [2002/05/11 16:21 ][環境:WIN+IE UNIX系+Perl]

どれか一つのラジオボタンがチェックされているかどうかを
検出したいのですが、〜.length だとエレメントが1つの時に
うまく検出できません。
解決策またはもっと良い方法があれば教えてください。

Ex:1
<FORM NAME=FORM>
<INPUT TYPE=RADIO NAME=RADIO VALUE=〜>
<INPUT TYPE=RADIO NAME=RADIO VALUE=〜>
</FORM>
<SCRIPT>
alert(document.FORM.RADIO.length)
</SCRIPT>
結果=2

Ex:2
<FORM NAME=FORM>
<INPUT TYPE=RADIO NAME=RADIO VALUE=〜>
</FORM>
<SCRIPT>
alert(document.FORM.RADIO.length)
</SCRIPT>
結果=undefined


1:[回答] 匿名な人 [2002/05/13 09:44 ]

一つのラジオボタンって、意味がありますか?


2:[回答] J [2002/05/13 14:27 ]

>一つのラジオボタンって、意味がありますか?
はい、CGIから動的に出力されるページなので1つになる場合があります。

チェックボックスだと、複数の時に排他選択が出来ないので
ラジオボタンを使いましました。

引き続きお待ちしています。


3:[回答] 下級天使 [2002/05/13 15:42 ]

こんにちわ。

美しくはありませんが、下記のような感じでできるのでは?
以下、動作確認はしてません。

※便宜上、# をコメント行として書きましたので、気をつけて下さい。

function checkradio {
 arrayflg = 0;

 # ラジオボタンが複数(2つ以上)ある場合
 # lengthで、undefが返らないので、ループで回せる
 for ( j = 0 ; j < document.FORM.RADIO.length ; j ++ ) {
   if ( j == 0 ) {
     arrayflg = 1;
   }
   if ( document.FORM.RADIO[j].checked == true ) {
     # j番目のラジオボタンがチェックされている時の処理
   }
 }

 # ラジオボタンが1つの場合
 if ( arrayflg == 0 ) {
   if ( document.FORM.RADIO.checked == true ) {
     # ラジオボタンがチェックされている時の処理
   }
 }
}


undefined か否か判定して(undefの判定式が可能なら。←できたかな? 調べてみて下さい)
真なら、エレメントは複数
偽なら、エレメントは単数とみなしてはいかがでしょうか?
※document.FORM.RADIOが nullでない事が前提で


4:[回答] 下級天使 [2002/05/13 15:45 ]

すいません。記述ミスです。

undefined か否か判定して(undefの判定式が可能なら。←できたかな? 調べてみて下さい)
lengthが、undefinedなら、単数。
lengthが、undefinedでないなら、エレメントは複数


5:[回答] 下級天使 [2002/05/13 16:12 ]

再び。

下記でどうでしょうか?
http://minerva.jaist.ac.jp:8080/jstips.html

それでは。


6:[回答] J [2002/05/13 18:27 ]

ありがとうございました。
そのものズバリの解説でした。

でも、良く考えたら選択項目が1つしかない時に、わざわざその
1つを選択するアクションが煩わしいので、出力側であらかじめ
checked を出力するように仕様を変更しました。

しかし、入力チェック時の事前検査としてこの機能も組み込み
込む事にしました。勉強になりましたありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World