2016-10-03 1 views
0

selectの値を変更すると、hasClass()は選択内で.select_timedbが見つからないため、条件は常にfalseです。どうしてこれなの?私はinputのために同じコードを使用し、それは正常に動作します。選択にHasClassを使用するには?

私はこれ以上の選択をしています。私がこれらのいずれかを変更するとき、私は何かをしなければならないかどうかを知るために選択が.select_timedbクラスを持っているかどうかを知る必要があります。

<select class="form-control select_time select_timedb valid" id="time1" name="time1" aria-required="true" aria-invalid="false"> 
    <option value="1">1 h</option> 
    <option value="2">1 day</option> 
</select> 
$('body').on('change', 'select_timedb', function() { 
    if ($(this).hasClass("select_timedb")) { 
     // do something 
    } 
}); 
+3

削除 '.'のようなselect_timedb''からこの 'IF($(この).hasClass( "select_timedb")){' –

+0

Typo: 'hasClass()'でチェックしているクラスに '.'接頭辞を付けるべきではありません。セレクタがそれらの要素だけが選択されることを保証するので、 'hasClass()'を使用するとかなり冗長です。唯一の方法は、そのクラスを動的に追加/削除する場合ですが、その場合委譲されたイベントハンドラはもっと良いアイデアとなるでしょう –

+0

あなたはすでに '.select_timedb'をフィルタリングしていますので、このイベントのすべてのインスタンスにそのクラスがありますか? – Curt

答えて

2

使用

$(this).hasClass('select_timedb') // remove the . 

https://api.jquery.com/hasclass/

+0

あなたはすでにそれを縛っている同じクラスをチェックする必要はありませんが。 –

+0

ドットは問題ではなく、ドットなしでは機能しません – Clorge32

関連する問題