2012-03-13 14 views
3

JQueryを使用して、ドロップダウンメニューに値が含まれているかどうかを確認するにはどうすればよいですか?値によって、私はテキストがメニュー項目として表示されるという意味ではありません。アイテムのID(val)を意味します。私はすでにドロップダウンメニューに項目のリストを持っており、さらに追加したい。私がそれをする前に、キーと値のペアを複製しないようにしたいと思います。JQueryを使用すると、ドロップダウンメニューに値が含まれているかどうかを確認するにはどうすればよいですか?

+0

ID' 'することにより、あなたは値を意味するのですか?あるいは、実際にはHTMLの 'id'属性を意味しますか? –

+0

ドロップダウンメニュー項目の値 – Mark13426

+2

'$ {'option [value =" value_id_here "]')長さ{(存在する)}'を試しましたか? – Shef

答えて

3

何かがあなたがやりたいだろう。 (JSFiddle

HTML

<select id="sel"> 
    <option value="foo">foo</option> 
</select> 
<button data-add="foo">add foo</button> 
<button data-add="bar">add bar</button> 

JS

$('button').on('click', function() { 
    var new_val = $(this).data('add'); 

    if ($('option[value='+new_val+']', '#sel').length) { 
     alert('nope, exists!') 
    } else { 
     $('<option value="'+ new_val +'">'+new_val+'</option>').appendTo($('#sel')); 
    } 
}); 

あなたは1.7を使用.bindの代わり.onよりも古いjQueryのバージョンを使用している場合。ここで

+0

ちょっとOP、あなたの好きな答えをupvotingマインド? Sheesh ... –

+0

http://knowyourmeme.com/photos/159321-waiting-for-opop-will-surely-deliver –

0

あなたはここで、この

$(document).ready(function() { 

    if ($("#drpentry").find("option[value='Dog']:contains('Ds')").length > 0) { 

      alert('exist entry'); 
     } 
     else { 

      alert('not exist'); 
     } 

    }); 

チェックを試すことができます。このようなhttp://jsfiddle.net/Eemqh/1/

0

は、データの属性を必要とせずに、マルク・Diethelms液の短縮バージョンです:jsfiddle

$('button').bind('click', function() { 
    var new_val = $(this).html().split(' ').splice(1).join(' '), 
     $sel = '#sel'; 
    $('option[value='+new_val+']', $sel).length > 0 ? 
     alert('nope, exists!') : 
     $('<option value="'+ new_val +'">'+new_val+'</option>').appendTo($sel); 
}); 
+0

良いフットワークSimon、しかし、データattrsは実際には存在しない例題を作るためのものですOPが使用しなければならないデータソース。あなたの例は、複数の言語を実装しなければならなくなるとすぐに壊れます。一般的には、論理値として入力の表示値に依存するべきではありません。 いずれにしても、実際のライフシナリオで新しいオプション要素を追加するボタンはページには表示されません。私は例を提供するためにそこに置いています。 –

関連する問題