CMSの更新画面で、すでに選択された状態での連動について教えてください。
連動そのものは問題ないのですが、更新画面で、親・子とも選択された状態で表示しますと、子の方は全て表示された状態です。
これを、[親]日本が選択された状態では、[子]は日本の地域のみ表示・選択できる状態にして、[親]を変更した場合は再度連動させたいのです。
$(function() {
var $children01 = $('.children01');
var original = $children01.html();
$('.parent01').change(function() {
var val1 = $(this).val();
$children01.html(original).find('option').each(function() {
var val2 = $(this).data('val');
if (val1 != val2) {
$(this).not('optgroup,.msg').remove();
}
});
if ($(this).val() === '') {
$children01.attr('disabled', 'disabled');
} else {
$children01.removeAttr('disabled');
}
});
});
//親
<select class="parent01 mandatory" name="input_group">
<option class="msg" value="">[国選択]</option>
<option value="1" selected>日本</option>
<option value="2">イギリス</option>
</select>
//子
<select class="children01 mandatory" name="input_name">
<option class="msg" value="">[地域選択]</option>
<option value="北海道" data-val="1" selected>北海道</option>
<option value="秋田" data-val="1">秋田</option>
<option value="青森" data-val="1">青森</option>
<option value="イングランド" data-val="2">イングランド</option>
<option value="スコットランド" data-val="2">スコットランド</option>
<option value="アイルランド" data-val="2">アイルランド</option>
</select>
いろいろ調べてみましたが、どうにもわかりません。
ご教示いただけないでしょうか?
宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは
>CMSの更新画面で~~
とあるので、サイトの更新のことかと思いましたが、どうやら「閲覧者がリロードした際」という意味らしいと解釈しました。
ご質問文には説明がありませんが、jQueryを利用しているものと仮定しました。
>子の方は全て表示された状態です
リロード時に限らず、最初の表示の初期表示でも(日本-北海道が選択状態ですが)、親(=日本)に対して、それ以外の「子」も選択可能な状態になっていますが、そちらはそのままで残して、リロード時のみ解消したいということでしょうか?
どちらか不明なので、ひとまず、両方とも解消しても良いものと解釈しました。
対応方法として、『ロードした際に、changeイベントの時と同じ処理を実行する』ようにしておけば、ご質問の事象は解消すると思われます。
匿名関数のままだと、2度同じことを記述しなければならなくなるので、まず、changeの際の処理を名前付き関数にしておきます。
例えば、function hoge(){ ~~
その上で、
$('.parent01').on('change', hoge);
hoge();
のようにしておけば良さそうです。
※ $(function(){ 内に、hoge();を記述しておくことで、ロート(リロード)時に、関数hogeが実行されることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでoptionタグを削除...
-
Selectボックスの一覧表示方法
-
プルダウンで選択した項目にあ...
-
javascriptでセレクトボックス...
-
自動的に連番生成したURLにリン...
-
return trueとreturn falseの用...
-
一つのページで二つのFormを別...
-
Excelで作ったhtmlファイルのサ...
-
正規表現で複数マッチ条件で悩...
-
追加ボタンを押した際に ok ボ...
-
value内に変数を入れたい
-
【掲示板の機能】投稿時にサイ...
-
JavaScriptのfileオブジェクト...
-
jsで質問です。 ボタンが二つ存...
-
ページ間で変数を保持したい
-
出発駅A、到着駅Bを選択すると...
-
ボタンかリンクをクリックする...
-
contact-form7のプラグインでチ...
-
画面表示とともにtableの指定の...
-
プルダウン 項目が多いので先頭...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
複数のプルダウンを1つにまとめ...
-
3つのselectでURLパラメータを...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報