現在jqueryにて、セレクトボックスchangeの値でセレクトボックスを追加するというものを作っています。
わからない点がいくつかあり、ご質問させていただきました。
<select name="num" id="num">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
<option value="5">E</option>
</select>
というselectboxがあったときに、changeイベントで常に値をとっています。
$('#num').change(function(){
var numTotal = eval($('#num :selected').val());
$('#num1 > select').remove();
for(i = 1; i <= numTotal; i++) {
$('#num1').append($('<select name="num1['+ i +']" class="num1">'));
for(no = 1; no <= 99; num++) {
$('#num1').append('<option value="'+ no +'">'+ no +'</option>');
}
$('#num1').append($('</select>'));
}
});
と記述をしているのですが、
numで5を選択すると5個分selectboxは表示されます。
ですが、optionをnoで回しているとnumで選択した数ぶんループしています。
またnumでの値で表示されたslectbox(num1)2つめ以降から様子が変わり、noのループ数が1つずつ減っていきます。
例:numで5を選択
num1[0]では99までの数字が5回表示され、num1[1]だと99までの数字が4回表示され、num[2]だと99までの数字が3回表示されてしまいます。
これを正常に各num1[0]、num1[1]は99までの数字を1回のみに表示させるにはどうしたらよいでしょうか?
悩んでしまったため、投稿させていただきました。
どなたかご教授いただけないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
元になるselectboxを、選択した回数分clone作って名前を変えてやればいかがでしょうか
--PHP--
<select name="num" id="num">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
<option value="4">D</option>
<option value="5">E</option>
</select>
<select name="num1[0]" id="sel_0">
<? for($i=1;$i<=99;$i++){ ?>
<option value="<?= $i ?>"><?= $i ?></option>
<? } ?>
</select>
--javaScript--
$('#num').change(function(){
var numTotal = eval($('#num :selected').val());
$('.sel').remove();
for(var i=1;i<numTotal;i++){
$('#sel_0').clone().insertAfter($('#sel_' + (i - 1))).attr('id', 'sel_' + i).attr('name', 'num1[' + i + ']').addClass('sel');
}
});
この回答への補足
お忙しい中有難う御座います。
思っている動作ができました。
度重なるご質問で申し訳ないのですが、selectboxがcloneで生成される際に<div>タグなどで囲みたいのですが、どこに追加すれば可能でしょうか?
いくつか試してみたのですが、divにidとnameが付与されてしまいます。
理想は
<div id="sel_1">
<select name="num11">
<opton>
</select>
</div>
<div id="sel_2">
<select name="num12">
<opton>
</select>
</div>
が理想になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectを変更不可にしたい
-
プルダウン選択を変更すると、...
-
javascriptでセレクトボックス...
-
javascriptでoptionタグを削除...
-
スマホのフォームでのselect複...
-
SELECTタグで変更禁止にする方法
-
プルダウンメニューに連動する...
-
selectのすべての値を送信する方法
-
hiddenに値を設定する方法
-
全てのselect要素をデフォルト...
-
Selectボックスの一覧表示方法
-
プルダウンを選択していないと...
-
select要素のvalueを配列で取得...
-
webページの一部のみの更新につ...
-
「年」「月」二つのドロップダ...
-
javascriptで計算フォームを作...
-
変数にフォーム名を指定したい
-
同じ名前のセレクトがある場合...
-
selectボックスで選択数を制限...
-
jqueryでselect要素を表示・非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報