2012-02-21 89 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 Mobile的就像你在評論中所說的那樣。

如果您使用的是selectmenu 部件,你需要你做出編程更改其內容/結構之後以編程方式刷新:

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

Documentation

+0

也許這是JQuery移動表單選擇字段的一個問題,因爲這些示例都沒有提前選擇一個值,是的(例如,在iPhone中,當您查看select時,在所選值旁邊會出現一個藍色記號)但在加載時,選擇框是白色的。很奇怪。 – user1202278 2012-02-21 16:28:19

+1

你應該指定你正在使用jquery mobile,這是非常重要的信息!你在使用selectmenu小部件嗎? – 2012-02-21 16:32:57

+0

我已經編輯了我的答案。 – 2012-02-21 16:40:47

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 2012-02-21 16:04:35

+0

我已經更新了答案從一個工作示例 – Ashraf 2012-02-21 16:16:02

+0

也許這是jQuery Mobile的形式選擇字段一個問題,因爲沒有這些例子是預先選擇的值,是在T帽子(例如在iPhone上,當您查看選擇時,在所選值旁邊會出現一個藍色標記),但在加載時,選擇框爲白色。很奇怪。 – user1202278 2012-02-21 16:28:43

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 2012-02-21 16:28:32