
はじめまして、ラジオボタンでの動的項目の変化についてわからないことがあり質問させていただきました。
質問は以下の通りです。
・ラジオボタンをクリックする度に指定した入力フォームに変化する。
(ラジオボタンが三種類あったとしたら、一つ目がチェックボタンでの回答形式。二つ目がラジオボタンでの回答形式。三つ目がテキストボックスでの回答形式といった感じです。)
・現在、onClickで関数を呼び出し変化させようとしていますが、うまくいきません。
・環境はJavaScript + PHP 、IEです。
どなたか、サンプルコードのURLかコードを記述して頂けませんでしょうか?
質問内容がわかりにくいと思いますがよろしくお願いします。
No.1ベストアンサー
- 回答日時:
> 現在、onClickで関数を呼び出し変化させようとしていますが、うまくいきません。
この場合はonchange()を使った方が良いですよ。
下に簡単なサンプルコードを貼っておきます。
入力フォームの切り替え部分はJavaScriptライブラリのjQuery(http://jquery.com/)を使っています。jQueryを使用しなくても実現できますが・・・。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
<!--
function showCheck() {
var text = '<input type="checkbox" name="check" value="A"/>A '
+ '<input type="checkbox" name="check" value="B"/>B '
+ '<input type="checkbox" name="check" value="C"/>C';
$("#container").html("");
$("#container").html(text);
}
function showRadio() {
var text = '<input type="radio" name="radio" value="A"/>A '
+ '<input type="radio" name="radio" value="B"/>B '
+ '<input type="radio" name="radio" value="C"/>C';
$("#container").html("");
$("#container").html(text);
}
function showText() {
var text = '<input type="text" name="text"/>';
$("#container").html("");
$("#container").html(text);
}
//-->
</script>
</head>
<body>
<form>
<input type="radio" name="type" value="check" checked="checked" onchange="showCheck();"/>チェックボックス
<input type="radio" name="type" value="radio" onchange="showRadio();"/>ラジオボタン
<input type="radio" name="type" value="text" onchange="showText();"/>テキストフィールド
<div id="container">
<input type="checkbox" name="check" value="A"/>A
<input type="checkbox" name="check" value="B"/>B
<input type="checkbox" name="check" value="C"/>C
</div>
</form>
</body>
</html>
x_jouet_xさん
早速、回答していただきありがとうございます。
サンプルコードを実際に動作しようとしたのですがIEだと「オブジェクトを指定してください」とエラーが表示され、実行できませんでした。
お手数ですが、再度ご教示頂けないでしょうか?
なにぶん、学び始めた者ですみません・・・
以上よろしくお願いします。
No.2
- 回答日時:
> お手数ですが、再度ご教示頂けないでしょうか?
JavaScriptでDOMの処理を記述するのが面倒だったので、先のサンプルコードはjQueryというJavaScriptライブラリを使用していました。
説明不足ですみません・・・。
JavaScriptのみで記述すると以下のようになります。
以下で動作しないようであれば再びご指摘願います。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<script type="text/javascript">
<!--
function showCheck() {
// id="container"要素の取得
var container = document.getElementById("container");
// id="container"要素配下の子要素を全て削除
while(container.firstChild) {
container.removeChild(container.firstChild);
}
// チェックボックスAの作成
var checkA = document.createElement("input");
checkA.type = "checkbox";
checkA.name = "check";
checkA.value = "A";
container.appendChild(checkA);
var textA = document.createTextNode("A ");
container.appendChild(textA);
// チェックボックスBの作成
var checkB = document.createElement("input");
checkB.type = "checkbox";
checkB.name = "check";
checkB.value = "B";
container.appendChild(checkB);
var textB = document.createTextNode("B ");
container.appendChild(textB);
// チェックボックスCの作成
var checkC = document.createElement("input");
checkC.type = "checkbox";
checkC.name = "check";
checkC.value = "C";
container.appendChild(checkC);
var textC = document.createTextNode("C");
container.appendChild(textC);
}
function showRadio() {
// id="container"要素の取得
var container = document.getElementById("container");
// id="container"要素配下の子要素を全て削除
while(container.firstChild) {
container.removeChild(container.firstChild);
}
// ラジオボタンAの作成
var radioA = document.createElement("input");
radioA.type = "radio";
radioA.name = "radio";
radioA.value = "A";
container.appendChild(radioA);
var textA = document.createTextNode("A ");
container.appendChild(textA);
// ラジオボタンBの作成
var radioB = document.createElement("input");
radioB.type = "radio";
radioB.name = "radio";
radioB.value = "B";
container.appendChild(radioB);
var textB = document.createTextNode("B ");
container.appendChild(textB);
// ラジオボタンCの作成
var radioC = document.createElement("input");
radioC.type = "radio";
radioC.name = "radio";
radioC.value = "C";
container.appendChild(radioC);
var textC = document.createTextNode("C");
container.appendChild(textC);
}
function showText() {
// id="container"要素の取得
var container = document.getElementById("container");
// id="container"要素配下の子要素を全て削除
while(container.firstChild) {
container.removeChild(container.firstChild);
}
// テキストフィールドの作成
var text = document.createElement("input");
text.type = "text";
text.name = "text";
container.appendChild(text);
}
//-->
</script>
</head>
<body>
<form>
<input type="radio" name="type" value="check" checked="checked" onchange="showCheck();"/>チェックボックス
<input type="radio" name="type" value="radio" onchange="showRadio();"/>ラジオボタン
<input type="radio" name="type" value="text" onchange="showText();"/>テキストフィールド
<div id="container">
<input type="checkbox" name="check" value="A"/>A
<input type="checkbox" name="check" value="B"/>B
<input type="checkbox" name="check" value="C"/>C
</div>
</form>
</body>
</html>
再度回答していただきありがとうございました!
実行確認が取れ参考にさせていただきたいと思います。
大変親切に回答していただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
javascriptによる動的なリンク...
-
チェックボックスのON/OFFに連...
-
データベースの値を判断してラ...
-
ラジオボタンとif文
-
サイト内の物件を複数の検索条...
-
ボタン無しでフォーム内容送信
-
return trueとreturn falseの用...
-
selectメニューのselectedの位...
-
プルダウン 項目が多いので先頭...
-
<input>の選択肢をプルダウンメ...
-
JAVASCRIPT
-
slickのレスポンシブ > center...
-
ブラウザの戻るボタンを押した...
-
Webブラウザにてページのりロー...
-
Selectボックスの幅を自動で広...
-
クリックごとに文字色が交互に...
-
クリックされた罫表セルの行番...
-
javascript による POST 送信時...
-
html selectの内容を初期値に戻す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
javascript作成してます。ラジ...
-
Javascriptを使って動的にラジ...
-
ラジオボタンでdisabledとchecked
-
ラジオボタンのチェックが外れ...
-
CGI.pmでラジオボタンを思い通...
-
リセットボタンでクリアできな...
-
文字列を表示/非表示させつつ、...
-
データベースの値を判断してラ...
-
ラジオボタンのValueを受け取り...
-
ログ入力支援ツールの作成方法
-
ラジオボタンの選択によってチ...
-
ラジオボタンとif文
-
2項目計算って可能でしょうか?
-
ラジオボタンのチェック数に応...
-
JavaScript フォームでのラジオ...
-
Formのラジオボタンリセット方法
-
チェックボックス とラジオボ...
-
ラジオボタンを使って、検索ペ...
-
【javascript】firefoxでの、al...
おすすめ情報