2013-02-25 87 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

相关问题