2016-04-14 20 views
0

私は検索して検索しているし、何が必要なものを見つけることができません。JavaScriptの自動選択をドロップダウンから

私はjavascriptが必要なので、ドロップダウンからオプションを選択しますが、オプションの値ではなく名前を選択します。

は、私が持っている:

<select class="aa" id="local" name="local"> 
<option value="0">Cała Polska</option> 
<option value="1">Dolnośląskie</option> 
<option value="100">• Bolesławiec</option> 
<option value="101">• Dzierżoniów</option> 
<option value="102">• Głogów</option> 
<option value="103">• Góra</option> 
<option value="104">• Jawor</option> 
<option value="105">• Jelenia Góra</option> 

をだから私は名前ではなくIDによりf.ex「ヤヴォル」を選択する必要がある - それは最も重要です。それを動作させるには?

+2

http://stackoverflow.com/questions/3989324/javascript-set-dropdown-selected-item-based-on-option-text – Goose

答えて

2

あなたはそれが好きです。ここjqueryを使用して

var options = document.getElementsByClassName("aa")[0].options, 
 
\t name ="Jawor"; 
 

 
for(i = 0; i < options.length; i++){ 
 
    if(options[i].text.indexOf(name) > -1){ 
 
    \t options[i].selected = true; 
 
     break; 
 
    } 
 
}
<select class="aa" id="local" name="local"> 
 
    <option value="0">Cała Polska</option> 
 
    <option value="1">Dolnośląskie</option> 
 
    <option value="100">• Bolesławiec</option> 
 
    <option value="101">• Dzierżoniów</option> 
 
    <option value="102">• Głogów</option> 
 
    <option value="103">• Góra</option> 
 
    <option value="104">• Jawor</option> 
 
    <option value="105">• Jelenia Góra</option> 
 
</select>

+0

'break'あなたが一致するものを見つけたら、あります探し続ける理由はありません。 – Barmar

+0

@Barmar、あなたは正しい!かわった。 –

0

。あなたは、次の機能を使用することができます。

function selectFromDropdown(selector, text) { 
    $(selector).find('option').each(function() { 
    if ($(this).text() == text) { 
     $(selector).val($(this).val()); 
    } 
    }) 
} 

デモ:

function selectFromDropdown(selector, text) { 
 
    $(selector).find('option').each(function() { 
 
    if ($(this).text() == text) { 
 
     $(selector).val($(this).val()); 
 
     return false; 
 
    } 
 
    }) 
 
} 
 

 
//use the function 
 

 
setTimeout(function() { 
 
    selectFromDropdown('#local', '• Dzierżoniów') 
 
}, 1000) 
 
setTimeout(function() { 
 
    selectFromDropdown('#local', '• Jawor') 
 
}, 4000)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="aa" id="local" name="local"> 
 
    <option value="">Select</option> 
 
    <option value="0">Cała Polska</option> 
 
    <option value="1">Dolnośląskie</option> 
 
    <option value="100">• Bolesławiec</option> 
 
    <option value="101">• Dzierżoniów</option> 
 
    <option value="102">• Głogów</option> 
 
    <option value="103">• Góra</option> 
 
    <option value="104">• Jawor</option> 
 
    <option value="105">• Jelenia Góra</option> 
 
</select>

+0

ここではうまく動作しますが、クロームコンソールで作業する必要があります。 –

+0

コンソールがテキストの特殊文字を適切に処理していない可能性があります。最初に普通の文字を使ってみて、それがうまくいくかどうか確認できますか? – Roy

+0

一致する要素を見つけたら、 '.each'ループから抜け出す必要があります。検索を続ける必要はありません。それは 'false'を返して行います。 – Barmar

1

Uは例えば...のonChangeイベントハンドラを使用する必要が

<select onchange="showSelected()"> 

あなたのスクリプトを書く...

<script> 

function showSelected(){ 
    var s=document.getElementById('local');   //refers to that select with all options  
    var selectText=s.options[s.selectedIndex].text // takes the one which the user will select 
    alert(selectText)        //Showing the text selected ... 
} 
</script> 

あなたのコードの残りは大丈夫です!ループのうち

<select class="aa" id="local" name="local" onchange='showSelected'()> 
<option value="0">Cała Polska</option> 
<option value="1">Dolnośląskie</option> 
<option value="100">• Bolesławiec</option> 
<option value="101">• Dzierżoniów</option> 
<option value="102">• Głogów</option> 
<option value="103">• Góra</option> 
<option value="104">• Jawor</option> 
<option value="105">• Jelenia Góra</option> 
</select> 
+0

あなたはそれを後方に持っています。彼は選択されたオプションのテキストを表示したくないので、テキストに基づいてどのオプションが選択されているかを変更したい。 – Barmar

+0

@Barmar彼は、値ではなくオプション内のテキストによって、選択したオプションを変更したかったのです。 アラート()を使用して表示しました。それ以外の場合は、誰でも削除して、自分が望むことをすることができます。 –

関連する問題