
ラジオボタンでreadonlyの切替えをしたいのですが、どうもうまくいきません。ラジオボタンの値の拾い方でつまづいているようです。
<script Language="JavaScript">
<!--
function set( n ) {
document.main.Submit.value = document.main.elements[n].value;
document.main.Submit.style.backgroundColor = document.main.elements[n].style.backgroundColor;
document.main.年月日.value = 'やっほ';
document.main.年月日.style.background = 'white';
if (document.main.shori.value = '複写'){
document.main.年月日.readOnly = '';
alert(document.main.shori.value);
}
else if (document.main.shori.value = '修正'){
alert(document.main.shori.value);
document.main.年月日.readOnly = ture;}
}
// -->
</script>
<FORM NAME=main ACTION="★" METHOD="POST">
<INPUT TYPE="RADIO" NAME="shori" VALUE="修正" CHECKED onClick="set(0);">修正 <INPUT TYPE="Radio" NAME="shori" VALUE="複写" onClick="set(1);">複写<BR>
<INPUT TYPE="text" NAME="年月日" SIZE="20" VALUE="" readonly style="background-color : #FFCCCC;" style="ime-mode: inactive">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="送信"></form>

No.2ベストアンサー
- 回答日時:
まず、#1の方も指摘されていますが、フォーム部品の名前に全角文字は使わないようにした方が良いですね。
エラーの原因になることが多々あります。それで、ラジオボタンの利用法ですが、ラジオボタンがチェックされているかどうかを拾う必要があると思いますよ。 document.フォーム名.ラジオボタン名[x].checkedというプロパティが真であるかどうかをチェックしないといけないでしょう。 特定のラジオボタンがチェックされているかどうかを拾うには、ラジオボタンはJavaScriptでは配列として管理されていますので、そのフォーム名とラジオボタン名に加えて、配列の番号を付記して行います。
ラジオボタンを拾って動作をチェックする部分のスクリプトを、以下のようにしてみてはいかがでしょうか。
if (document.main.shori[1].checked){
document.main.dated.readOnly= false ;
alert(document.main.shori[1].value);
}
else if (document.main.shori[0].checked){
alert(document.main.shori[0].value);
document.main.dated.readOnly= true ;}
多分これでうまく動いてくれると思います。
なお、readOnly属性の操作で、書込み禁止を解除する場合には、値なしを引き渡すよりもfalseを渡した方が確実ですよ。
ラジオボタンの扱いは、他のタイプのものとはちょっと違うので、慣れが必要ですね(私も先日こちらの回答で、ラジオボタンの扱いについて間違ったことを書いてしまいました…)。
参考になれば幸いです。 見当違いでしたら、ごめんなさい。
回答ありがとうございました。
アドバイスのとおりで動きました。
>ラジオボタンがチェックされているかどうかを拾う必要があると思いますよ。
この点があいまいなままでやっていました。どうも動きが違うと繰り返していたらこのせいなのですね。
No.3
- 回答日時:
>ラジオボタンの値の拾い方でつまづいているようです。
上記の通りだ何故かラジオボタンをクリックした時に関数を呼び出ししかも何故かそれぞれのラジオボタンに特有の引数を入れてるのでそれを利用すればわざわざdocumentを使わなくても場合わけで切るのでは?
if(n==0){
修正のラジオボタンを押した時の処理
}else if(n==1){
複写のラジオボタンを押した時の処理
}
if(n==1)は省略しても大丈夫なはずですが一応入れておきました。
回答ありがとうございました。
>わざわざdocumentを使わなくても場合わけで切るのでは?
確かに、提示した中身だけだとそのとおりなのですが、員数の部分を今後なしにするつもりなので今回の質問になってしまいました。
No.1
- 回答日時:
とりあえず
フォームの名前は全角文字は使わないように。
とりあえず、何をしようとしているのでしょうか?
document.main.年月日.value = 'やっほ';
document.main.年月日.style.background = 'white';
はif文の外にありますが(つまり関数が呼び出されるたびに動作しますが)それでいいのでしょうか?
あと
document.main.Submit.style.backgroundColor = document.main.elements[n].style.backgroundColor;
は何をしようとしているのでしょうか?
回答ありがとうございました。
>はif文の外にありますが(つまり関数が呼び出されるたびに動作しますが)それでいいのでしょうか?
すみません。この部分はやりたいことと直接には関係ない部分でした。
>document.main.Submit.style.backgroundColor = document.main.elements[n].style.backgroundColor;
は何をしようとしているのでしょうか?
ここも同様でした。 (^^;
よけいな部分が多すぎる質問でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Renta !全タテコミ作品第1話無料配信!!
縦スクロール&フルカラーマンガ特集!
-
div要素内の全input要素をdisable
JavaScript
-
複数のボタンを等間隔に、かつ中央に配置する
HTML・CSS
-
C# ReadOnlyのTextBoxで
C言語・C++・C#
-
4
javascriptで編集可能不可能の切り替え
JavaScript
-
5
C#で年月を比較する
C言語・C++・C#
-
6
ラジオボタンでdisabledとchecked
JavaScript
-
7
ラジオボタンのNullチェック
JavaScript
-
8
CSSでreadonlyの機能はありますか?
その他(プログラミング・Web制作)
-
9
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
10
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
-
11
ループ処理の際、最後だけ,"をつけたくない"
Java
-
12
ラジオボタンが両方とも選択できてしまう
HTML・CSS
-
13
c# 文字列の最後から1文字削除したい
C言語・C++・C#
-
14
ActiveReportについて
Visual Basic(VBA)
-
15
confirmのOK・キャンセルを押した後の操作制御
JavaScript
-
16
セレクトメニューで2つの項目や値を渡す方法はありますか?
HTML・CSS
-
17
BETWEEN を2つ以上使用する方法はありますか?
MySQL
-
18
String型の日付(2005/11/25)の比較
Java
-
19
VB.NETのDropDownListをReadOnlyにする方法またはEnable=Falseで字を黒くする方法
Visual Basic(VBA)
-
20
C#にて別クラスの関数を使いたい
C言語・C++・C#
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
getElementByIdでonClick内を書...
-
5
VBAでIEのボタンを押してメッセ...
-
6
クリッカブルマップのリンク部...
-
7
createElementした直後の要素の...
-
8
onClickイベントの変更方法
-
9
Googlemapで始点~次のステップ...
-
10
IE操作で別タブ表示のHTMLソー...
-
11
IE11 javascriptについて
-
12
DOM要素を削除しても、イベント...
-
13
スマホでフォームにフォーカス...
-
14
[platex] description環境でのi...
-
15
背景ランダム
-
16
onload時にPostBackを発生させ...
-
17
google apps scriptの終了のさせ方
-
18
functionから別のfunctionを実...
-
19
JavaScriptで決まった「時刻」...
-
20
総当りの配列を返す関数の作成
おすすめ情報