
下記の動作をする checkfunc(); の書き方をご教示ください.
<html>
<head>
<script type="text/javascript">
checkfunc()
</script>
</head>
<body>
<form name="myform">
<input type="checkbox" name="yesno" value="1">チェックボックス
<input type="radio" name="rdo1" value="0">ラジオボタン0
<input type="radio" name="rdo1" value="1">ラジオボタン1
<input type="radio" name="rdo1" value="2">ラジオボタン2
<input type="radio" name="rdo1" value="3">ラジオボタン3
<input type="radio" name="rdo1" value="4">ラジオボタン4
</form>
</body>
</html>
(1) このHTMLのラジオボタン5つは,最初は全てdisabledです.
(2) チェックボックスがされたらラジオボタングループが有効になるようにしたいです.
(3) 逆に,チェックが外れたらラジオボタンはdisabledに戻ります.
(4) このjavascriptは,PHPファイルに組み込みますが.表示時にDBを読み込んでどれに
チェック/選択されていたかによって,checkboxやradioに「checked」を追記します.
その場合,enabled/disablesの関係に矛盾がないようにもしたいですが,
<body>に onload="checkfunc();" と入れればいいでしょうか?
なお,IE以外のブラウザでも動作できると大変助かります.よろしくお願い致します.
No.1ベストアンサー
- 回答日時:
litton101 さん、こんにちは。
さて litton101 さんのスクリプト、以下のように修正させていただきました。お試しあれ。
<html>
<head>
<script type="text/javascript">
function checkfunc() {
for(i=0; i<5; i++) {
document.myform.rdo1[i].disabled = !(document.myform.yesno.checked);
}
}
</script>
</head>
<body onLoad="checkfunc();">
<form name="myform">
<input type="checkbox" name="yesno" value="1" onClick="checkfunc();">チェックボックス
<input type="radio" name="rdo1" value="0">ラジオボタン0
<input type="radio" name="rdo1" value="1">ラジオボタン1
<input type="radio" name="rdo1" value="2">ラジオボタン2
<input type="radio" name="rdo1" value="3">ラジオボタン3
<input type="radio" name="rdo1" value="4">ラジオボタン4
</form>
</body>
</html>
hkd9001さん,
迅速かつ完璧な(!)ご回答ありがとうございました,早速組み込んで大変快適です.
実は,途中まで解決できていたのですが,途中で挫折していました.
でも,ご提示いただいたScriptで,おかげさまで,解決しました.
本当にありがとうございました.
自己レス,もったいないので(?!)掲示しますね・・
------------
元質問者です,過去質問を応用したら,ON/OFFに応じたdisabledは実現できました…
http://oshiete1.goo.ne.jp/qa1768091.html
が,「更新(F5)」ボタンを押したり,
PHPでDBに登録してある値に応じてHTML表示時にラジオボタンにチェックしたり
などの動作を加えると,既定で追加されている「disabled」が効いてしまい,
「チェックは入っているのにdisabled」状態になってしまいます.
この点,何とかならないでしょうか?よろしくお願い致します.
(1) checkfuncを追加
(2) チェックボックスに, onclick="checkfunc(this);"を追加
(3) 各ラジオボタンに,「class="rdo1" disabled」を追加
<html>
<head>
<script type="text/javascript">
function checkfunc(f) {
for(var i=0; i<f.form.length; i++){
if (f.form.elements[i].className == "rdo1") {
f.form.elements[i].disabled = !f.checked;
}
}
}
</script>
</head>
<body>
<form name="myform">
<input type="checkbox" name="yesno" value="1" onclick="checkfunc(this);">チェックボックス
<input type="radio" name="rdo1" value="0" class="rdo1" disabled>ラジオボタン0
<input type="radio" name="rdo1" value="1" class="rdo1" disabled>ラジオボタン1
<input type="radio" name="rdo1" value="2" class="rdo1" disabled>ラジオボタン2
<input type="radio" name="rdo1" value="3" class="rdo1" disabled>ラジオボタン3
<input type="radio" name="rdo1" value="4" class="rdo1" disabled>ラジオボタン4
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リセットボタンでクリアできな...
-
ラジオボタンとif文
-
javascript作成してます。ラジ...
-
ラジオボタンでの動的項目の変...
-
プルダウンで選択すると、DBの...
-
一覧から選択した行の行番号を...
-
sessionの値でボタンを活性・非...
-
プルダウン選択を変更すると、...
-
cookie使用時にundefinedと表示...
-
CSVファイルを読みこみ、プルダ...
-
【jsp/Java】チェックボックス...
-
1つのform内に2つのsubmitボタ...
-
onchangeイベントを強制的に発...
-
Selectボックスの幅を自動で広...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
確認ページからフォームページ...
-
【jQuery】input nameの文字列...
-
JQueryで2つのテキストフィー...
-
onclickが動作しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
javascript作成してます。ラジ...
-
Javascriptを使って動的にラジ...
-
ラジオボタンでdisabledとchecked
-
ラジオボタンのチェックが外れ...
-
CGI.pmでラジオボタンを思い通...
-
リセットボタンでクリアできな...
-
文字列を表示/非表示させつつ、...
-
データベースの値を判断してラ...
-
ラジオボタンのValueを受け取り...
-
ログ入力支援ツールの作成方法
-
ラジオボタンの選択によってチ...
-
ラジオボタンとif文
-
2項目計算って可能でしょうか?
-
ラジオボタンのチェック数に応...
-
JavaScript フォームでのラジオ...
-
Formのラジオボタンリセット方法
-
チェックボックス とラジオボ...
-
ラジオボタンを使って、検索ペ...
-
【javascript】firefoxでの、al...
おすすめ情報