2011-12-19 18 views
3

ユーザーがテキストボックスに入力して選択ドロップダウンで検索して選択できるようにします。しかし、私はオブジェクトそのものではなく、その名前を持っています。現在押す正確なテキストでドロップダウンからオプションを選択する方法

は、テキストボックスに入力して、次のコード

$(this).prev().find('option:contains(\'editboxValue\')').attr('selected', 'selected'); 

が、コード上でのみテキスト2]を選択し実行します。次のコードは正常に動作しますが、それは乱雑に見えます!

$(this).prev().find("option").each(function(){ if ($(this).text() == 'editboxValue') $(this).attr("selected","selected");}); 

これを書き込む方法はありますか?

<select> 
    <option>Text</option> 
    <option>Text1</option> 
    <option>Text2</option> 
</select> 
<input type="text"> 
+0

あなた 'each'ループを使用して、ドロップダウンリストの項目のテキストを使用してオプションを選択します。 ''+ $(this).val()+''は文字通り取られます。 'filter'を使うことができます:http://api.jquery.com/filter/ –

+0

@Felix:間違いを強調してくれてありがとう。私は選択したイベントの一部からラインを取った。私が意味したことを示すためにコードを編集しました – AaA

答えて

0

あなたのIDまたはクラスを選択して、あなたのテキストに等しいidを与えます。 オプションを生成すると簡単に作成できます。あなたがよりしなければならない アルはこれです:

var myId = 'GetTheIdYouNeed' 
$('.mySelect').find(myId); 
+1

これは、**タグ名** 'GetTheIdYouNeed'で要素を検索します。 –

+0

これは当てはまりません。私はページ内に複数の選択肢を持つことができ、それぞれの後にテキストボックスがあります。 イベントは実行時に各テキストボックスに添付されるため、スクリプトには不明です – AaA

3

は、要素を選択することはありません。この

var findText = $('#textBoxId').val(); 
$('#dropDownList option'). 
    filter(function() {return ($(this).text() == findText); })). 
    attr('selected', 'selected'); 
関連する問題