2012-03-14 15 views
1

jQueryMobileを使用して、選択ウィジェットの内容を変更してから、その上で 'refresh'を呼び出すと、選択したオプションのテキストは変更されません。ここにシナリオがあります...jquery mobile selectedオプションが 'refresh'で更新されない

「選択」ウィジェットは既にページdivにあります。ユーザーがその画面に移動すると、そのページに移動するために選択したボタンに基づいてオプションが動的に作成されます。このオプションリストは、

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

のように作成され追加されています。新しいページにはじめて動作します。彼らが離れて戻って来るとき、私は

$('#searchReasonList').empty()
正しいオプションリストを構築し、同じ追加を行い、電話:
$('#searchReasonList').selectmenu('refresh',true)

ネイティブの選択は本当にリフレッシュされ、オプションから選択することができます。ただし、選択したオプションは表示されません。プレースホルダだけが表示されます。これは、選択されたオプションのラベルで更新されていないclass='ui-btn-text'でそのスパンタグの

<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> 

:拡張マークアップを表示するには

。私のプレースホルダーのラベルである "Search Reason"のままです。

何か別のことが必要ですか?

+0

jQuery Mobileのどのバージョンを使用していますか? – Jasper

+0

1.0.1、この時点では最新の安定版です。 – dlgrasse

答えて

6

を使用して、選択ウィジェットを更新することができます(この時点では最新の安定版です)。あなたは、あなたがリフレッシュされるだけでなく、ウィジェットを余儀なくされている(, trueに気づく)$('select').selectmenu('refresh', true);を使用する場合http://jsfiddle.net/4Thzt/

が、常にプレースホルダーテキストが表示されますされ、再構築:ここ

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

はデモです。 出典:http://jquerymobile.com/demos/1.1.0-rc.1/docs/forms/selects/methods.html

+0

あなたのjsfiddleページは確実に機能します。しかし、第2の「真の」argを含めるかどうかに関係なく、私の選択したオプションは表示されません。私が見ることができる唯一の違いは、私がページに再び入ってくることです。私のボタンのonclickハンドラはオプションリストを作成し、selectを空にし、選択リストにオプションリストを追加してから$ .mobile.changePageを呼び出し、selectmenuのrefreshを呼び出します。実際には何も起こりません。それは私の場合には更新されません。 – dlgrasse

+0

@dlgrasse問題のサイトへのリンクはありますか? – Jasper

+0

申し訳ありません。私のシナリオのシンプルなバージョンを作成し、他に何もしていないことを確認するよう促します。 – dlgrasse

関連する問題