どなたか教えてください。
変な質問の仕方で申し訳ありません。
<select>
<option value="hoge1">a1,b1,c1</option>
<option value="hoge2">a2,b2,c2</option>
<option value="hoge2">a3,b3,c3</option>
</select>
これはhoge1をセレクトするとa1,b1,c1となりますが、
これをhoge1をセレクトするとinput hoge2、input hoge3、が連動して
値b1,c1を表すような事をしたいのですが。(下記)
<select><option value="hoge1">a1</option></select>をセレクトすると
<input type="text" name="hoge2" >value値に=b1が入る
<input type="text" name="hoge3" > value値に=c1が入る
どうすれば動くのか分かりません
初心者なので具体的に教えていただければ幸いです。
何か簡単な方法はないでしょうか?
どうぞよろしくお願い致します。
No.3ベストアンサー
- 回答日時:
#2です。
#2のスクリプトでは、セレクトボックスの選択された文字列を読んで他のinput要素の値を書き込んでいます。
>select boxにはa1のみしか出さないようにするのはどうしたらよいのでしょうか?
1)値をa1に固定してしまって良いのなら、「selectのoptionをa1のみにしてししまう」
ことで可能ですが、他の値を選択し直すことはできなくなります。
(この場合はセレクトを消して、inputに置き換えてしまった方が良いかも…)
2)他を選択できるように、optionを追加してa1表示のみのものを追加して表示することも
可能ですが、選択し直してこのa1のみのものを選択するとb1、c1にあたる値が無いので
他の部分が表示されないので整合性がとれなくなるのでは?
3)表示を変えるのではなく、別に全部のセットをスクリプト側で記憶しておくのなら#1様
がご提示の方法で可能です。
4)現在どのように使用しているのか不明ですが、セレクトの表示を最初からa1、a2、a3だけ
にして、optionのvalue値に他の値を持たせておいてもよいのなら、以下のようにほぼ同じ
要領で可能です。
他にもいろいろとやりようはあると思いますが、どのような仕様を求めていらっしゃるのかは、質問文から読み取れる範囲でしかわかりませんので・・・
◇ 4)の例
<script type="text/javascript">
<!--
function change(sel){
var elm = sel.form.elements;
val = sel.value.split(",");
elm["fuga2"].value = val[0] || "";
elm["fuga3"].value = val[1] || "";
}
//-->
</script>
<form name="form1" action="" method="">
<select name="fuga1" onchange="change(this)">
<option value="" selected></option>
<option value="b1,c1">a1</option>
<option value="b2,c2">a2</option>
<option value="b3,c3">a3</option>
</select>
<input type="text" name="fuga2">
<input type="text" name="fuga3">
</form>
fujillinさま
ご回答ありがとうございます。
◇ 4)の例で私が意図した通りです!素晴らしいです。
こんなに分かって頂けて大変感謝致します。このようにやりたくて昨日一日、自分でも頂いた式を色々ググッたりして変えてみたりしたのですが、
どこをどう変えたら良いのか分かりませんでした。
ご親切に丁寧に教えていただいて本当にありがとうございます。
助かりました。
又何かありましたらどうぞよろしくお願い致します。
No.2
- 回答日時:
No1様の回答と似たようなもんですが、ご質問の通りに…
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
function change(sel){
var elm = sel.form.elements, val = sel.options[sel.selectedIndex];
val = val.textContent || val.innerHTML;
val = val.split(",");
elm["fuga2"].value = val[1] || "";
elm["fuga3"].value = val[2] || "";
}
//-->
</script>
</head>
<body>
<form name="form1" action="" method="">
<select name="fuga1" onchange="change(this)">
<option value="hoge0" selected></option>
<option value="hoge1">a1,b1,c1</option>
<option value="hoge2">a2,b2,c2</option>
<option value="hoge2">a3,b3,c3</option>
</select>
<input type="text" name="fuga2">
<input type="text" name="fuga3">
</form>
</body>
</html>
この回答への補足
fujillinさまご回答ありがとうございます。
返信が遅くなりまして申し訳ありません。
動き的には本当に意図した通りなんですが、
大変おしいのですが、select boxにa1,b1,c1と表示されてしまいます。
select boxにはa1のみしか出さないようにするのはどうしたらよいのでしょうか?
自分で色々試して見ましたがなかなかできませんでした。
尚、select box a1には3文字数しか入りませんので
select box a1の表示文字数の制限等でも構わないのですが。
回答等お持ちでしたら是非またよろしくお願い致します。
No.1
- 回答日時:
他の方法もあると思いますがとりあえず
・挿入する値は配列で持っておく
・selectの値が変更された際に選択肢に該当する配列の値を
入力エリアにセットする。
の様な感じでどうでしょうか?
<html>
<head>
<title>select</title>
<script type="text/javascript">
<!--
b=new Array();
c=new Array();
b["hoge0"]="";
c["hoge0"]="";
b["hoge1"]="b1";
c["hoge1"]="c1";
b["hoge2"]="b2";
c["hoge2"]="c2";
b["hoge3"]="b3";
c["hoge3"]="c3";
function changeselect() {
value = document.forms["selectform"].select1.options[document.forms["selectform"].select1.selectedIndex].value;
document.forms["selectform"].hoge_b.value = b[value];
document.forms["selectform"].hoge_c.value = c[value];
}
-->
</script>
</head>
<body onload="changeselect();">
<form name="selectform">
<select name="select1" onchange="changeselect();">
<option value="hoge0"></option>
<option value="hoge1">a1</option>
<option value="hoge2">a2</option>
<option value="hoge3">a3</option>
</select>
<input type="text" name="hoge_b" >
<input type="text" name="hoge_c" >
</form>
</body>
</html>
この回答への補足
duronさまご回答ありがとうございます。
返信が遅くなりまして申し訳ありません。
これですと元の配列に手を加えなくてはいけないのでしょうか?
selectには実は90行位ありまして、配列に=を付けてのようにするのはかなり大変なんですが。function changeselect()迄の行は省略できるのでしょうか?
select boxに a1 しか出さないようにするのは意図した通りでなんですが。
もし何か他のアイデア等ありましたらまた是非よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セレクトボックスのselected属...
-
SELECT要素の垂直位置
-
CLispのloop内の挙動について
-
パイソンのクラスについて
-
JSONで文字列が長い時
-
【メモリ不足で落ちる(python)】
-
Application.ScreenUpdating = ...
-
vscode 文字化け
-
ASPへの値渡し
-
FindFirst を複数条件で検索
-
パイソンのクラスのブログラム
-
パイソンプログラミング
-
どちのほうがすきですか?
-
I2C接続のLCDディスプレイを使う
-
エクセルVBA シート名の部分一...
-
パイソンのクラスについて
-
CGI(Perl)とHTMLについて
-
UWSCのSELECT文の記述方法
-
Perl でワードファイルのヘッダ...
-
UWSC SLCTBOXもしくはSELECTに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の横にプルダウンを表示さ...
-
セレクトメニューで2つの項目...
-
<SELECT>タグの折り返し
-
テーブル内でドロップダウンメ...
-
セレクトボックスのselected属...
-
セレクトボックスの「選択して...
-
同じものを繰り返し表示させる
-
セレクトメニューで選んだ値を...
-
セレクトボックスである項目を...
-
SELECT OPTIONの中身をコピペ...
-
複数列を持ったリストボックス...
-
セレクトボックスから別窓にジ...
-
プルダウンメニューのボタンの...
-
プルダウンリストの背景色の指定
-
プルダウンで別項目に値を代入...
-
[html]ラジオボタンを使った診...
-
selectタグ内の特定のoptionの...
-
フォームの「キャンセル」ボタ...
-
プルダウンメニューで中央表示
-
select boxとinput valuの連動
おすすめ情報