2013-02-25 20 views
1

我試圖添加選項到jqueryMobile中的selectmenu。我閱讀了我想從sqlite數據庫添加的值。從數據庫讀取工作(控制檯日誌輸出告訴我它已經找到了16行),並且包含新選項的變量也被正確填充。但是,如果我想將選項添加到selectmenu中,我會收到錯誤「無法在初始化之前調用selectmenu上的方法:試圖調用方法'refresh'。我嘗試在刷新之前運行selectmenu()方法,但它確實也不在這裏工作是我的代碼:如何使用數據庫和手機將選項添加到jquery mobile中的選擇菜單

HTML:

<select name="subject" class="subjectDropdown" data-native-menu="false"> 
    <option>%tx_subject%</option> 
</select> 

的Javascript:

// Read all subjects from the database 
    fillSubjectsDropdown: function(){ 
     sz.db.container.transaction(function(tx){ 
      tx.executeSql("SELECT * FROM SUBJECTS ORDER BY sj_name", [], sz.db.selectSubjectsSuccess, sz.db.errorCB); 
     }, sz.db.errorCB, sz.db.successCB); 
    }, 

// Read subjects Callback 
    selectSubjectsSuccess: function(tx, results){ 
     var len = results.rows.length; 
     console.log('### szlog: Subjects found: ' + len); 
     var subjects = '<option value="">' + sz.langdata['subject'] + '</option>'; 
     for (var i = 0; i < len; i++){ 
      subjects += '<option value="' + results.rows.item(i).sj_id + '">' + results.rows.item(i).sj_name + '</option>'; 
     } 
     $(".subjectDropdown").html(subjects).selectmenu('refresh', true); 
    }, 

我已經搜索並發現了一些文章,但沒有一個人能真正幫助我任何幫助將非常感謝。

我用jqueryMobile 1.2.0,jQuery的1.8.3和2.3.0的PhoneGap

感謝

回答

1

在這種錯誤的情況下:

cannot call methods on selectmenu prior to initialization: attempted to call method 'refresh'.

不管它是一個按鈕,選擇box或listview,該元素必須在merkup增強之前初始化,並且可以開始刷新功能。

更改你的代碼是這樣的:

$(".subjectDropdown").html(subjects).selectmenu().selectmenu('refresh', true); 

首先.selectmenu()將初始化和第二.selectmenu( '刷新',真正的);將風格。

+0

我覺得有點奇怪,你不能像我之前嘗試過的那樣把它分成兩行,但是無論如何......這個工作,所以感謝你的幫助! – bbasmer 2013-03-01 05:43:28

相關問題