2016-08-01 13 views
0

私は質問に悩まされています。jqueryで複数の選択を取得

私はHTMLで複数選択リストボックスを作成しようとしています。ユーザーの選択に「OTHER」という項目が含まれている場合は、リストボックスの下にテキストボックスが表示されます。

私が最初にこの思い付いた:

onchange = "displayDiv(this.options[this.selectedIndex].text) 
-------------------------------------------------------------- 
function displayDiv(val) { 
    if (val == "OTHER") { 
     $("#divName").show(); 
    } else { 
     $("#divName").hide(); 
    } 
} 

が、私は、これは複数選択では動作しません実現。選択したすべての項目をjqueryの配列またはリストとしてどのように取得しますか?

答えて

0

<select>要素の場合、$('select').val()の戻り値は、選択された値を持つArrayです。

あなたはjQueryの< 3.0では

$('select').val().indexOf('OTHER') > -1 

を使用することができ、何も選択が全く存在しない場合は、値をかどうかを確認する必要がありますので、val()は、nullを返します=使用のindexOf前にnullを!:

if ($('select').val()) { 
    if ($('select').val().indexOf('OTHER') > -1) { 
     // do something 
    } 
} 
+0

ありがとうございました!これは部分的に機能しています。 .val()は文字列ではなくoptionの値を返します。しかし、今から、私はそれの周りでそれを働かせることができるオプションの価値を知っています。再度、感謝します! –

+0

私の答えで述べたように、 'select'要素が複数選択の場合、' val() 'によって返される値は文字列ではなく' Array'です。それがあなたを助けたら私の答えを受け入れることは大歓迎です。 – Dekel

+0

あなたは間違いなく正しいです。これは私のプロジェクトの設定だけですこのような ' 'それは" OTHER "の代わりに5を返します。 –

関連する問題