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

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

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

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

Q&A

解決済

2回答

5152閲覧

3つのプルダウンの選択内容を1つの項目でリセットしたいです。

miva

総合スコア14

JavaScript

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

0グッド

1クリップ

投稿2016/02/15 09:57

option2、option3で選択された内容をoption1で「リセット」を選択することでリセットするようにしたいのですが上手くいきません。

どなたか間違いを教えてはいただけませんでしょうか

<script type="text/javascript"> $("#option1").change(function(){ if($(this).val() == "none"){ $("#option2").attr("selected",false); $("#option3").attr("selected",false); } }); </script> <FORM> <H5>テスト</H5> <SELECT name="option1"> <OPTION value="start">ステップ1</OPTION> <OPTION value="step11">ステップ2</OPTION> <OPTION value="step12">ステップ3</OPTION> <OPTION value="none">リセット</OPTION> </SELECT> <SELECT name="option2"> <OPTION value="start20" selected>初期</OPTION> <OPTION value="step21">ステップ2</OPTION> <OPTION value="step22">ステップ3</OPTION> <OPTION value="step23">ステップ4</OPTION> </SELECT> <SELECT name="option3"> <OPTION value="start30" selected>初期</OPTION> <OPTION value="step31">ステップ2</OPTION> <OPTION value="step32">ステップ3</OPTION> <OPTION value="step33">ステップ4</OPTION> </SELECT> </FORM>

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

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

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

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

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

guest

回答2

0

  • $("#option1") は id 属性の指定であって、name 属性でしていするなら $("select[name='option1']") のようにする必要がある

というのは yug13 さんの回答のとおりですが・・・


selected は option 要素の属性です、select 要素ではありません。なので、select 要素の小要素である option に指定する必要があります。例えば $("select[name='option2'] option") のようにです。

selected を false にするのはプロパティ(prop)です。例えば次のようにです。

js

1$("[name='option2'] option").prop("selected",false);

属性で制御するなら removeAttr で削除する必要があります。

js

1$("select[name='option2'] option").removeAttr("selected");

ただ、removeAttr はオススメしません。prop で false にするほうが良いと思います。

投稿2016/02/15 11:25

ngyuki

総合スコア4514

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

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

miva

2016/02/16 04:05

分かりやすくご丁寧な投稿に大変感謝しています! とても助かりました。有難うございました。
guest

0

ベストアンサー

・jQueryの$("#option1")で取得できる要素は id="option1"の要素です。name="option1"しかないので取得できません。
→つまりこの方法ではプルダウンのなにが選択されたのかが判定できません

・質問にあった $("option").attr('selected',false); の方法だとうまく行きませんでした。何故かは確かめてないですが。
→直接戻したい値を指定したらできました。

・selectにidを付けたくない場合は、name属性を指定することでも取得できます。

javascript

1$("select[name='option1']").val();

html

1<script type="text/javascript"> 2 $(document).ready(function () { 3 console.log($("#option1").val()); 4 $("#option1").change(function () { 5 if ($(this).val() == "none") { 6 console.log("none selected"); 7 $("#option2").val("start20"); 8 $("#option3").val("start30"); 9 } 10 }); 11 }); 12</script> 13<form> 14 <h5>テスト</h5> 15 <select name="option1" id="option1"> 16 <option value="start">ステップ1</option> 17 <option value="step11">ステップ2</option> 18 <option value="step12">ステップ3</option> 19 <option value="none">リセット</option> 20 </select> 21 <select name="option2" id="option2"> 22 <option value="start20" selected>初期</option> 23 <option value="step21">ステップ2</option> 24 <option value="step22">ステップ3</option> 25 <option value="step23">ステップ4</option> 26 </select> 27 <select name="option3" id="option3"> 28 <option value="start30" selected>初期</option> 29 <option value="step31">ステップ2</option> 30 <option value="step32">ステップ3</option> 31 <option value="step33">ステップ4</option> 32 </select> 33</form>

投稿2016/02/15 10:09

編集2016/02/15 10:12
yng13

総合スコア215

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

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

miva

2016/02/16 04:04

とても早い投稿をありがとうございました。 すぐに問題解決ができ助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問