2012-03-14 84 views
1

使用jQueryMobile,當我改變選擇小部件的內容,然後調用'刷新'時,所選選項的文本不會改變。這裏是場景...jquery mobile選擇的選項不更新'刷新'

「選擇」小部件已經存在於頁面div中。當用戶轉到該屏幕時,這些選項將根據他們選擇轉到該頁面的按鈕動態創建。這個選項列表是根據

$('#searchReasonList').append(optionList)

第一次進入新頁面一切正常。當他們離開並回來,我做

$('#searchReasonList').empty()
然後我建立正確的選項列表,並執行相同的追加和呼叫:
$('#searchReasonList').selectmenu('refresh',true)

本機選擇確實刷新,我可以從選項中進行選擇。但是,所選選項不顯示。只有佔位符被看到。

要顯示的增強型標記:

<div class="ui-select"> 
    <div class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c" data-theme="c"> 
    <span class="ui-btn-inner ui-btn-corner-all"> 
     <span class="ui-btn-text">Select Reason</span> 
     <span class="ui-icon ui-icon-arrow-d ui-icon-shadow"></span> 
    </span> 

    <select id="searchReasonList" name="searchReasonList" data-placeholder="true"> 
     <option value="">Select Reason</option> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
    </select> 
    </div> 
</div> 

這是一個與class='ui-btn-text'跨度標籤未與所選擇的選項的標籤更新。它只是保持「搜索原因」,這是我佔位符的標籤。

還有什麼需要做的嗎?

+0

你使用的是什麼版本的jQuery Mobile? – Jasper 2012-03-14 20:02:36

+0

1.0.1,這是目前最新的穩定版本。 – dlgrasse 2012-03-14 20:04:01

回答

6

使用jQuery 1.0.1(目前最新的穩定版本),您可以使用.selectmenu('refresh')來刷新選擇小部件。

$('select').empty().append('<option value="foo">Bar</option>').selectmenu('refresh'); 

這裏是一個演示:http://jsfiddle.net/4Thzt/

當您使用$('select').selectmenu('refresh', true);(注意, true),你是迫使小部件,不僅刷新,但重建,這將始終顯示佔位符文本。 來源:http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/selects/methods.html

+0

你的jsfiddle頁面肯定有效。但不管我是否包含第二個「真實」參數,我選擇的選項都不顯示。我可以看到的唯一區別是我再次進入頁面。我的按鈕的onclick處理程序創建選項列表,清空select,將選項列表附加到select,然後調用$ .mobile.changePage,然後調用selectmenu上的刷新。沒有什麼複雜的事情發生這個跨度在我的情況下並沒有得到更新。 – dlgrasse 2012-03-14 20:19:30

+0

@dlgrasse你有鏈接到有問題的網站? – Jasper 2012-03-14 20:25:03

+0

不 - 對不起。但你提示我創建我的場景的簡單版本,並驗證我沒有其他任何事情正在破壞行爲。 – dlgrasse 2012-03-14 20:27:13