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

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

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

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

Q&A

解決済

2回答

803閲覧

指定したidのセレクトメニューのセレクタ。

tkshp

総合スコア174

jQuery

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

0グッド

0クリップ

投稿2019/02/18 07:43

編集2019/02/18 08:09

前提・実現したいこと

「指定したidのセレクトメニューで選択されたものが空だったら」という条件分岐をするためには、
どのようなセレクタを指定すればよいのでしょうか?

ご教示をお願い致します。

該当のソースコード

HTML

1<select name="" class="title"> 2 <option value="">Select</option> 3 <option value="MR">Mr.</option> 4 <option value="MRS">Mrs.</option> 5</select> 6 7<button id="btn">Continue</button>

試したこと

「セレクトメニューで」という条件をつけない方法ならばわかりました。

現状のコードは、id=btnのボタンをクリックしたときに、
【「classがtitleで選択されているもの」が、空だったら】というif文になっているかと思いますが、
これを
【「classがtitleのセレクトメニューで、選択されているもの」が、空だったら】というif文を作成したいです。
現状のコードでも動いていますが、
セレクタでの指定条件をより詳しく(「セレクトメニュー」という条件を追加して)書きたいです。

jQuery

1$("#btn").on("click", function(){ 2 if($(".title option:selected").val() == ""){ 3 alert("選択されていません。"); 4 } 5});

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

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

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

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

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

m.ts10806

2019/02/18 07:46

イベントの発火条件は何でしょうか。
tkshp

2019/02/18 07:48

ボタンクリック時にチェックします。 $("#btn").on("click", function(){ ~ });
m.ts10806

2019/02/18 07:49

そちらも含めて、HTML、JavaScriptコード追記していただけたらと。 $("#title").val() だけでも「現在選択しているoptionのvalue」は取得可能ですが、それでは何が不足しているのかも追記してください。
tkshp

2019/02/18 07:54

ご指摘ありがとうございます。 現状のコードでも取得できていますが、「セレクトメニューで指定したidで、選択したもので」という指定の方法を知りたいです。
m.ts10806

2019/02/18 07:56

> 「セレクトメニューで指定したidで、選択したもので」 もう少し具体的に記載願えますか?「○○というデータを選択したときに××というデータを取得したい」みたいな形で例示してもらえるとイメージもわきます(今のところ実装イメージが全くわかないので)
m.ts10806

2019/02/18 08:04

分かったような分からないような。 ですが、IDはそもそも画面内1つが原則ですから「idがtitleの」の時点で要素も確定してますよ。 つじつま合わせるなら「セレクトメニューの中でIDがselectであれば」でしょうか。
tkshp

2019/02/18 08:07

失礼しました。確かにIDで一意になりますね。 質問を書き直します。
guest

回答2

0

ベストアンサー

「classがtitleのセレクトメニューで、選択されているもの」が、空だったら

素直にかけばセレクタにselectを指定するだけ

javascript

1<script> 2$(function(){ 3 $('#btn').on('click',function(){ 4 if($('select.title').val()===""){ 5 console.log('selectがselectされていない'); 6 }; 7 }); 8}); 9</script> 10<select name="" class="title"> 11 <option value="">Select</option> 12 <option value="MR">Mr.</option> 13 <option value="MRS">Mrs.</option> 14</select> 15 16<button id="btn">Continue</button>

投稿2019/02/18 09:40

yambejp

総合スコア114775

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

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

tkshp

2019/02/19 04:53 編集

ご回答ありがとうございます。 なるほど、 if($('select.title').val()===""){ と書けるのですね。 とてもシンプルな書き方のご教示ありがとうございます。 勉強になりました。 ありがとうございました。
guest

0

こういうことでしょうか・・・

html

1<select class="title"> 2 <option value="">select</option> 3 <option value="1">2</option> 4 <option value="2">3</option> 5 <option value="3">4</option> 6</select> 7<p class="title"></p> 8<div class="title">aa</div> 9<button type="button" id="check">check</button>

js

1$(function(){ 2 $("#check").on("click",function(){ 3 $(".title").each(function(i,e){ 4 if($(e).prop("tagName") == "SELECT" && $(e).val() == ""){ 5 alert("test"); 6 } 7 }); 8 }); 9}); 10

投稿2019/02/18 08:14

m.ts10806

総合スコア80850

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

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

tkshp

2019/02/18 08:35

ご回答ありがとうございます。 勉強になりました。 ありがとうございました。
m.ts10806

2019/02/18 08:36

解決されたのは良いのですが、これで何をしたいのか大目的まであればもう少し適切な回答ができたのかもしれません。
tkshp

2019/02/18 08:43

クラスがtitleで被った時に、「titleクラスでなおかつセレクトメニューの要素のもの」を指定したかったので、解決できたと思います。
m.ts10806

2019/02/19 06:38

次からで結構ですので、ベストアンサー移す場合は一言ください。 (裏事情ですが、日付変わるとスコア-5となって「急に何が起きた?」と不審になるので)
tkshp

2019/02/19 06:40

teratailでそのような挙動となるのですね。 すみません、わかりました。次回以降気を付けます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問