2012-09-24 3 views
7

は、選択オプションのためのコードであり、データベースからPHPを使用して生成し、私はjQueryのまたは任意のJavaScriptを使用してvalue="4"selected="selected"を追加しよう:JavascriptまたはjQueryを使用してオプション属性に "selected"を追加するには?以下

<select id="countryselect" name="country"> 
<option value="1">Afghanistan</option> 
<option value="2">Albania</option> 
<option value="3">Algeria</option> 
<option value="4">Malaysia</option> 
<option value="5">Maldives</option> 
</select> 

私はこのpostを参照するように試みるが、まだできていない。..以下の通りです私の現在のスクリプト:

<script> 
localStorage.setItem("Select1", "Malaysia"); 
    $('#countryselect').find('option').each(function(i,e){ 
     if($(e).val() == localStorage.getItem("Select1")){ 
      $('#countryselect').prop('selectedIndex',i); 
     } 
    }); 
</script> 

ありがとう。

答えて

7

localStorage.getItem("Select1")はマレーシアを返し、$(e).val()は各ループに1,2 ... 5を返します。あなたの状態は決して真実ではありません。代わりに

<script> 
localStorage.setItem("Select1", "4"); 
    $('#countryselect').find('option').each(function(i,e){ 
     if($(e).val() == localStorage.getItem("Select1")){ 
      $('#countryselect').prop('selectedIndex',i); 
     } 
    }); 
</script> 
+0

ありがとう、あなたのソリューションは私のための仕事です。 – rusly

+0

@rusly、あなたは歓迎です –

1

ちょうど試みる

$("#countryselect").val('4') 
    //OR 

$("#countryselect option").val('4')​.attr("selected", true)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

チェックこのFIDDLE

+1

あなたは$( "countryselect option [value = 4]")を意味しますか?attr( "selected"、true) '? – undefined

11

これは、単純な動作するはずです、それが自動的に設定されます$("#countryselect").val('4')​

selected=selected

デモ:http://jsfiddle.net/muthkum/zYRkC/

+0

ありがとう..ソリューションはとてもシンプルです:D – rusly

-1
​​

を使用し、これは

+0

http://www.tutorialspoint.com/jquery/jquery-quick-guide.htm – Rahul

6

selected属性がboolean attributeで動作しますが、その存在はtrueに関連するDOMプロパティの値を設定します。属性が存在しない場合、選択されたプロパティの値はfalseです。

オプションが選択された属性の場合、ページが最初にロードされるか、コントロールがあるフォームがリセットされると、そのオプションが選択されたオプションになります。

プロパティtrueに設定されている場合、そのオプションが選択されます。ただし、フォームがリセットされた場合、選択されているデフォルトのオプション(つまり、属性がの場合、または最初のオプション、またはnone)が選択されます。

選択した属性(すなわちオプションデフォルト選択可能なオプションにする)を設定するには:

var select = document.getElementById('countryselect'); 
var option; 

for (var i=0, i<select.options.length; i<iLen; i++) { 
    option = select.options[i]; 

    if (option.value == '4') { 
    // or 
    // if (option.text = 'Malaysia') { 
    option.setAttribute('selected', true); 

    // For a single select, the job's done 
    return; 
    } 
} 

注このオプション現在選択されているオプションしないこと、それだけで、選択した属性を追加します。選択されていることを確認するには(選択されている場合)、選択したプロパティをtrueに設定します(下記参照)。

setAttributeの2番目の引数は、属性の値を設定するために使用される文字列であることに注意してください。ただし、選択された属性には「設定可能な」値がないため、2番目の引数は無視されます(たとえば、falseでも属性が設定され、デフォルトの選択オプションになります)。それはいくつかの混乱を引き起こします。 :-)

jQueryの1.6のよう

var select = document.getElementById('countryselect'); 
var option; 

for (var i=0, i<select.options.length; i<iLen; i++) { 
    option = select.options[i]; 

    if (option.value == '4') { 
    // or 
    // if (option.text = 'Malaysia') { 
    option.selected = true; 
    return; 
    } 
} 
5

「.prop()メソッドを使用して、取得して、このようなフォーム要素の確認、選択、または無効状態としてDOMプロパティを変更するには:ちょうどオプション現在の選択オプション)します。 "

$("#countryselect option[value=4]").prop("selected", "selected") 
+0

これはかなりうまくいった。乾杯! –

関連する問題