2011-11-16 40 views
13

Tôi đang viết jQuery Mobile App. Tôi đang thay đổi tùy chọn đã chọn thả xuống qua tuyên bố bên dưới: - $ ("# DataBaseNames"). Val (db);Tùy chọn thả xuống thay đổi di động jQuery Chọn tùy chọn và làm mới nó

Tôi chắc chắn về giá trị db chính xác đang được chuyển, vì tôi đã kiểm tra thông qua cảnh báo. Khi tôi xem chi tiết trình đơn thả xuống, nó cũng hiển thị văn bản chính xác đã chọn, nhưng bản thân thả xuống không hiển thị văn bản chính xác như đã chọn.

Bất kỳ cuộc gọi làm mới nào tôi cần chèn?

Edit: -Adding mã, bên dưới câu trả lời từ phill giải quyết nó

<script type="text/javascript"> 

     $("#@ViewBag.DivTitle").live('pageshow', function() { 

      var db = getCookie("DataBaseNames"); 

      $("#DataBaseNames").val(db);    
      $("#DataBaseNames option[value='"+ db + "']").attr("selected", "selected"); 

      //  refresh value , Following is what is required   
      $('select').selectmenu('refresh'); 

      $("#cmdLogOn").live("click", function() { 
       var dbSelected = $("#DataBaseNames option:selected").text();    
       setCookie('DataBaseNames', dbSelected); 
      }); 
     }); 

     function setCookie(name, value) { 
      var expires = ""; 
      document.cookie = name + "=" + value + expires + "; path=/"; 
     } 

     function getCookie(name) { 
      var nameEQ = name + "="; 
      var ca = document.cookie.split(';'); 
      for (var i = 0; i < ca.length; i++) { 
       var c = ca[i]; 
       while (c.charAt(0) == ' ') c = c.substring(1, c.length); 
       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 
      } 
      return null; 
     } 
    </script> 
+0

Mã sẽ rất hay để xem, vui lòng chỉnh sửa câu hỏi của bạn và thêm một số mã mẫu. Có lẽ http://jsfiddle.net –

Trả lời

35

làm mới cập nhật tùy chọn

này được sử dụng để cập nhật các tùy chỉnh chọn để phản ánh nguồn gốc chọn phần tử giá trị.Nếu số lượng các tùy chọn trong lựa chọn khác với số lượng mục trong menu tùy chỉnh , nó sẽ tạo lại menu tùy chỉnh. Ngoài ra, nếu bạn vượt qua một đối số thực sự , bạn có thể buộc xây dựng lại xảy ra.

//refresh value   
$('select').selectmenu('refresh'); 

//refresh and force rebuild 
$('select').selectmenu('refresh', true); 

Documents:

+0

cảm ơn vì đã chỉ ra điều này! – vaske

+0

đã lưu ngày của tôi !!!! – sony

2

Tôi đã kiểm tra this link và thấy nó làm việc cho tôi. Hãy thử điều này:

var myselect = $("select#YourDropdownID"); 
myselect[0].selectedIndex =0; 
myselect.selectmenu("refresh"); 
0

Nếu bạn muốn thay đổi một menu thả xuống dựa trên việc sử dụng khác này.

<link href="code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet"/> 
<link href="jquery/css/index.css" rel="stylesheet"/> 
<link href="../favicon.ico" rel="shortcut icon"/> 
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700" rel="stylesheet"/> 
<link href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet" /> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script> 

<script type="text/javascript"> 

    function ItemNo() 
    { 
    var no = $('#sltItemNo')[0].selectedIndex; 

    var myselect = $("select#sltItemName"); 
    myselect[0].selectedIndex =no; 
    myselect.selectmenu("refresh"); 
    } 
    function ItemName() 
    { 
    var no = $('#sltItemName')[0].selectedIndex; 

    var myselect = $("select#sltItemNo"); 
    myselect[0].selectedIndex =no; 
    myselect.selectmenu("refresh"); 
    } 

</script> 

<select id="sltItemNo" onchange="ItemNo()" data-shadow="false" data-mini="true"> 
    <option value="Abc">1</option> 
    <option value="Cde">2</option> 
    <option value="Efg">3</option> 
</select> 

<select id="sltItemName" onchange="ItemName()" data-shadow="false" data-mini="true"> 
    <option value="1">Abc</option> 
    <option value="2">Cde</option> 
    <option value="3">Efg</option> 
</select> 
Các vấn đề liên quan