2011-01-29 29 views
6

Lần đầu tiên, Khi tôi tải trang, chọn hộp của tôi là rỗng:JQuery Mobile: Làm cách nào để hiển thị lại hộp chọn?

<select name="secondaryTitle" id="secondaryTitle"></select> 

Sau đó, tôi thực hiện cuộc gọi ajax và lấy dữ liệu json cho hộp chọn ở trên.

arrtitle = objSecTitle.getAllSecondaryTitle(serviceId); // its an ajax call, that returns json object 
var obj = jQuery("#secondaryTitle"); 
removeAllOptions(obj); 
for(i=0;i<arrtitle.length;i++) 
{ 
    obj.options.length=obj.options.length + 1; 
    obj.options[obj.options.length - 1].text = arrtitle[i][1]; 
    obj.options[obj.options.length - 1].value = arrtitle[i][0]; 
} 
function removeAllOptions(selectbox){ 
    var i; 
    for(i=selectbox.options.length-1;i>=0;i--) 
    { 
     selectbox.remove(i); 
    } 
} 

Cuộc gọi ajax của tôi là hoàn hảo. Mã trên cũng thay đổi các mục thả xuống. Nhưng giao diện người dùng sẽ không được cập nhật khi chúng tôi sử dụng jQuery Mobile, vì nó hiển thị/ẩn div khác nhau cho cửa sổ bật lên lựa chọn.

Trả lời

14

Đừng bận tâm!

tôi nên kiểm tra tài liệu hướng dẫn đúng cách:

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

//refresh and force rebuild 
$('#secondaryTitle').selectmenu('refresh', true); 
+0

OMG điều này khiến tôi mất nhiều thời gian để tìm! Tôi đã thử mọi thứ trong nhiều ngày nay. Cảm ơn! –

+1

bạn nên sử dụng tốt hơn .trigger ('create') – TecHunter

0

Đừng hỏi tôi tại sao, nhưng điều này chỉ làm việc cho tôi cho đến khi tôi sử dụng dấu ngoặc kép ->" < - cho tất cả các chuỗi tham gia vào hướng dẫn này:

.

$ ("# secondaryTitle") Chọn Menu ("refresh", true); // làm việc

tôi đã có nó như thế này:

$ ('# secondaryTitle') sel. ectmenu ('refresh', true); // không hoạt động

và không hoạt động: S: S: S

Các vấn đề liên quan