質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

10185閲覧

セレクトボックスの連動と情報の保持について

kusaka

総合スコア6

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/01/08 12:26

こういった場所に初めて投稿致します。
質問のしかたなどに失礼が有りましたら申し訳ありません。

今回ページAに「名古屋会場の申し込み」「東京会場の申し込み」「大阪会場の申し込み」と他3つほど同じような会場申込みんボタンが有り、
例えば「名古屋会場の申し込み」ボタンをクリックしてぺーじBに移動するとセレクトボックスに名古屋会場の情報「地域」「日時」「場所」がセットされた状態で表示されるようになっています。

今回ネットで調べて連動するスクリプトを見つけたのですが、valueの値でセレクトボックスの連動を紐付けているため、メールフォームに使用することができませんでした。そこで、色々調べたところHTML5のカスタムデータ属性で何とかできないかと思いoptionにdata-area="エリア名"とかで連動を紐付けれないかと思いました。ただ、スクリプトをどういじればいいのかわからないので、お力を貸して頂けませんでしょうか。

わかりづらい文章で申し訳ありませんが、どうか宜しくお願い致します。

lang

1<!DOCTYPE html> 2<html lang="ja" dir="ltr"> 3<head> 4 <meta charset="UTF-8" /> 5 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 6 <script type="text/javascript"> 7 function getdata(){ 8 if(window.location.search){ 9 var n=window.location.search.substring(1,window.location.search.length); 10 }; 11 document.getElementById('area').options[n].selected = true; 12 document.getElementById('area2').options[n].selected = true; 13 document.getElementById('area3').options[n].selected = true; 14 } 15 window.onload=getdata; 16 </script> 17 18 <script type="text/javascript"> 19 $(function(){ 20 $('.pulldown').change(function(){ 21 //おそらく↓↓↓↓↓↓をいじればいいのではと思ってますが、どういじればいいかわかりません。 22 $('.pulldown').val($(this).val()); 23 }); 24 }); 25 </script> 26</head> 27<body> 28<form name="mailform" id="mailform" method="post" action="mailformpro/send.cgi" onsubmit="return falsesubmit(this)" accept-charset="UTF-8"> 29 <select id="area" name="会場" class="pulldown"> 30 <option data-area="名古屋" value="名古屋会場">名古屋会場</option> 31 <option data-area="東京都" value="東京会場">東京会場</option> 32 <option data-area="大阪府" value="大阪会場">大阪会場</option> 33 </select> 34 35 <select id="area2" name="日時" class="pulldown"> 36 <option data-area="名古屋" value="1月10日10:00">1月10日10:00</option> 37 <option data-area="東京都" value="1月20日10:00">1月20日18:00</option> 38 <option data-area="大阪府" value="1月24日10:00">1月24日7:00</option> 39 </select> 40 41 <select id="area3" name="場所" class="pulldown"> 42 <option data-area="名古屋" value="愛知県名古屋市北区3-5-10プリンセスホテル">愛知県名古屋市北区3-5-10プリンセスホテル</option> 43 <option data-area="東京都" value="東京都港区4-5東急イン">東京都港区4-5東急イン</option> 44 <option data-area="大阪府" value="大阪府梅田5-5東横イン">大阪府梅田5-5東横イン</option> 45 </select> 46 47</form> 48</body> 49</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lang

1$(document).ready(function () { 2 $('.pulldown').change(function() { 3 var dataArea = $(this).find(':selected').attr('data-area'); 4 var $allOptions = $('.pulldown option'); 5 var $options = $allOptions.filter('[data-area=' + dataArea + ']'); 6 7 $allOptions.attr('selected', false); 8 $options.attr('selected', true); 9 }); 10});

data-area 属性値をキーにオプション選択を連動させる、ということでしょうか

選択されたオプションのデータエリア属性値を取得して、同じ属性値を持つオプションを選択状態に替える、というふうに書いてみました

ページを移動する場合はローカルストレージを利用して選択状態を保存する方法も考えられるかもしれません
Codepen : A Pen by Gou Furuya


$(document).ready(...) を利用しているので、HTML 側では<script src="..."></script> でスクリプトを呼び出すだけになり、HTML のコードがスッキリします

Links

投稿2015/01/08 20:56

gouf

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kusaka

2015/01/09 01:17

早急なご回答ありがとうございます。 正直2−3日これにかかりきりだったので、大変助かりました! 今実装したところ、バッチリ動きました。 つたない文章を読み取っていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問