2012-09-12 50 views
0

我有一個MVC 2/jQuery移動應用程序。MVC PartialView中的下拉列表(選擇)不更新jQuery更改值後的文本

在我的主視圖中,我有一個可排序的列表。排序工作通過url參數sortorder。使用它可以更改排序的下拉列表中,看起來像這樣的局部視圖:

<div class="ui-select"> 
    <select name="sortSelect" id="sortSelect" data-mini="true"> 
     <option value="opt1">Option 1</option> 
     <option value="opt2">Option 2</option> 
     <option value="opt3">Option 3</option> 
    </select> 
</div> 

然後,我有一個jQuery,檢查下拉列表是否被改變。在改變它添加或更改URL sort參數與新的下拉值,並重定向到新的URL:

$(document).ready(function() { 
    $('#sortSelect').change(function() { 
     var sortOrder = $('#sortSelect').val(); 
     var url = document.URL; 
     if (url.indexOf("sortorder=") > -1) 
      url = url.replace(/sortorder=[^&]+/, "sortorder=" + sortOrder); 
     else 
      url = url + "&sortorder=" + sortOrder; 
     window.location.replace(url); 
    }); 
}); 

由於有被添加了&其他一些參數的排序順序之前,它是確定。

要當頁面重新加載我有以下的jQuery的URL設置正確的值(功能GUP從網址讀取值):

$('#sortSelect').ready(function() { 
    var sortorder = gup('sortorder'); 
    if (sortorder != '') 
     $('#sortSelect').val(sortorder); 
} 

有問題:如果我加載網站和變化sortorder通過下拉菜單,一切工作到目前爲止。該頁面新加載新的url參數和新排序的列表。即使下拉值設置正確(我檢查了這alert($('#sortSelect').val(),但下拉文本是舊的。如果我按F5的網站刷新,並下拉有其正確的文字...

任何想法我可以解決這個問題,或者什麼是所有的問題

+0

i fo並自行解答。如預期的那樣,我必須用*** $(「#sortSelect」)來刷新select(dropdown)。selectmenu(「refresh」); ***像這樣: $('#sortSelect')。ready(function ){ varorderorder = gup('sortorder'); if(sortorder!='') $('#sortSelect').val(unescape(sortorder)); $(「#sortSelect」)。selectmenu 「refresh」); });有時,簡單的問題需要一些時間;) – dotnetsharp

回答

0

我找到了答案我自己正如預期的那樣我有$("#sortSelect").selectmenu("refresh");這樣刷新選擇(下拉列表):??

$('#sortSelect').ready(function() { 
    var sortorder = gup('sortorder'); 
    if (sortorder != '') $('#sortSelect').val(unescape(sortorder)); 
    $("#sortSelect").selectmenu("refresh"); 
}); 

有時,容易問題需要一段時間;)

相關問題