下記は普通に動きますが、ラジオボタンの内容をデータベースによって変更しているためボタンが1個だけの場合があります。その場合にもエラーにならない書き方についてアドバイスいただけないでしょうか。
<SCRIPT language=JavaScript>
function set( n ) {
for ( i = 0; i < document.main.shori.length; i++ ) {
if ( document.main.shori[i].checked ) {
shori_value = document.main.shori[i].value
}
}
alert(shori_value)
}
</SCRIPT>
<body onLoad="set(0);">
<FORM NAME=main>
<INPUT TYPE="RADIO" NAME="shori" VALUE="1" onClick="set(0);" CHECKED>1
<INPUT TYPE="RADIO" NAME="shori" VALUE="2" onClick="set(1);">2
</form>
No.1ベストアンサー
- 回答日時:
おはようございます。
スクリプトを、以下のようにしてみてはいかがでしょうか。
var shori_value;
function set( n ) {
if (document.main.shori.length){
for ( i = 0; i < document.main.shori.length; i++ ) {
if ( document.main.shori[i].checked ) {
shori_value = document.main.shori[i].value;
}
}
}
else {
if(document.main.shori.checked){
shori_value = document.main.shori.value;}
}
alert(shori_value)
}
上では、if(document.main.shori.length){}という条件で条件分岐を設定しています。 document.main.shori.lengthは、フォーム部品のラジオボタンが配列としてソートされている場合には真を返しますので、複数のラジオボタンが並んでいるときにはこれ以下の処理を実行します。 もし、ラジオボタンが一つしかない場合は、それは配列としてソートされないため、document.main.shori.lengthは未定義となり、偽を返すはずなので、そこでエラーを回避できると思います。
あとは、else文でラジオボタンが一つのケースで、そのラジオボタンがチェックされているかどうかと、チェックされている場合にそのvalue値を返す処理を別に用意してやれば良いのではないでしょうか。
参考になれば幸いです。 見当違いでしたらごめんなさい。
回答ありがとうございました。
>document.main.shori.lengthは、フォーム部品のラジオボタンが配列としてソートされている場合には真を返しますので
上記丁寧な解説ありがとうございました。
自分で書いてはいても、コピー多用で、意味がわかっていない状態であることがよくわかりました。 (^^;
おかげ様で目的が達成できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
JavaScriptのfileオブジェクト...
-
onclickが動作しない
-
VB.NETで<Input>タグ、<text...
-
BackSpaceしたい(QNo.2734284の...
-
追加ボタンを押した際に ok ボ...
-
クリックさせたいが、click()が...
-
javaScriptの変数をJavaの変数...
-
JSのボタンを複数う使うには
-
javascriptで作成されたテーブ...
-
vbsでフォーム入力ができません
-
ハイパーリンクを別ウインドウ...
-
<input>の選択肢をプルダウンメ...
-
至急!GetElementById でtdの...
-
TextBoxに半角数字以外を入れた...
-
value内に変数を入れたい
-
<JavaScript>tableタグを入力不...
-
プルダウン 項目が多いので先頭...
-
画面表示とともに、テーブルの...
-
プルダウン選択を変更すると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
javaScriptの変数をJavaの変数...
-
クリックさせたいが、click()が...
-
追加ボタンを押した際に ok ボ...
-
onclickが動作しない
-
innerHTML内では改行は禁止?
-
formのfileの値をhiddenでも持...
-
JSのボタンを複数う使うには
-
onClickがinput type="image"だ...
-
VB.NETで<Input>タグ、<text...
-
ボタンかリンクをクリックする...
-
ボタンをクリックするとテキス...
-
開いた子ウィンドウにあるボタ...
-
オンクリックで現在時刻の取得→...
-
JavaScriptのfileオブジェクト...
-
URL 判定
-
if構文
-
BackSpaceしたい(QNo.2734284の...
-
複数のテキストボックスの値の...
-
jQueryでshow/hideが上手く行か...
おすすめ情報