2012-02-21 31 views
9

私はjQueryのリフレッシュ選択ボックス

$('#select').append('<option value="' + result + '">' + result + '</option>'); 

は、しかし、これは選択ボックスを残し、この方法を使用して、ページのロードにはJQueryを使用して選択フィールドを移入しています「ブランク」、オプションのリストの最初の値は次のように事前に選択されていない、すなわち、選択されたオプション。

最初の値が事前に選択されるようにこのリストを更新するにはどうすればよいですか?

申し訳ありませんが -

はありがとう前に、それはjQueryの携帯だったと述べている必要があります。

答えて

21

を選択したいオプション要素に「選択済み」属性を追加することができます:

$('#select') 
    .append('<option value="' + result + '" selected="selected">' + result + '</option>'); 

あなたはループを使用して、あなたは正確にあなたが要素を選択移入方法を指定しないでください、あなたはこのように行うことができます:

var data = ['a', 'b', 'c']; 
var $select = $('#select'); // you might wanna empty it first with .empty() 

for (var i = 0; i < data.length; i++) { 
    var o = $('<option/>', { value: data[i] }) 
     .text(data[i]) 
     .prop('selected', i == 0); 
    o.appendTo($select); 
}​ 

DEMO


だから、それはあなたがjQueryのモバイルを使用しているようですあなたがコメントで言ったように。

あなたはselectmenu ウィジェットを使用している場合、あなたはそのコンテンツ/構造へのプログラム変更を行った後、プログラムで更新する必要があります:

$select.selectmenu("refresh", true); 

Documentation

+0

おそらく、これはJQueryモバイルフォームの選択フィールドで問題になる可能性があります。これらの例のどれもが値を選択していないためです(たとえば、iPhone上で、選択した値の横に青色のチェックマークが表示されている場合)ロード時に選択ボックスは白です。非常に奇妙な。 – user1202278

+1

jquery mobileを使用していると指定する必要があります。これはかなり重要な情報です!あなたはselectmenuウィジェットを使用していますか? –

+0

私はそれに応じて私の答えを編集しました。 –

3

だけ..あなたはつまり、あなたが好きな値を設定します。$('#select').val(5); ..ので、あなたの場合はその$('#select').val(result);

編集:完全な作業例が含ま:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script> 
<select id='select'></select> 
<br> 
<input type=button onclick='addNew()' value='Add'> 

<script> 
function addNew() 
{ 
     var result = Math.floor(Math.random()*1000); 
     $('#select').append('<option value="' + result + '">' + result + '</option>'); 
     $('#select').val(result);   
} 
</script> 

+0

を使用することができます私はまだ、それはそれを解決していない怖いです空のあらかじめ選択されたオプション:( – user1202278

+0

私は実際の例で答えを更新しました – Ashraf

+0

おそらく、これはJQueryモバイルフォームの選択フィールドに問題があります。帽子(例えば、iPhone上で、選択した値の横に青い目盛りが表示されているときに表示されます)が、選択されたボックスの負荷は白です。非常に奇妙な。 – user1202278

1

すべてのブラウザが自動的に選択し、リフレッシュされません新しいオプションを追加した後。

私のために働くトリックは、新しいオプションを追加した直後に選択ボックスを隠して表示することです。だからあなたの場合:正しい新しく追加されたオプションを選択するよう

$('#select').append('<option value="' + result + '">' + result + '</option>').hide().show(); 

、とは、次のとおりです。

$('select').val(result); 
3

あなたは

$('#select').removeAttr('selected').find('option:first').attr('selected', 'selected'); 
+0

これはJQueryモバイルフォームの選択フィールドで問題になる可能性があります。これらの例のどれもが値を選択していないためです(例えば、iPhone上で、選択された値まで)が、選択ボックスは白で表示されます。非常に奇妙な。 – user1202278