【问题标题】:How to add options to a select menu in jquery mobile using a database and phonegap如何使用数据库和phonegap向jquery mobile中的选择菜单添加选项
【发布时间】:2013-02-10 06:47:39
【问题描述】:

我正在尝试向 jqueryMobile 中的选择菜单添加选项。我从 sqlite 数据库中读取了我想添加的值。从数据库中读取是有效的(控制台日志输出告诉我它找到了 16 行),并且保存新选项的变量也被正确填充。但是,如果我想将选项添加到选择菜单,我会收到错误“无法在初始化之前调用选择菜单上的方法:尝试调用方法‘刷新’。我试图在刷新之前运行 selectmenu() 方法,但它确实做到了也不行。这是我的代码:

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 和 phonegap 2.3.0

谢谢

【问题讨论】:

    标签: sqlite cordova jquery-mobile


    【解决方案1】:

    如果出现此错误:

    无法在初始化之前调用选择菜单上的方法:已尝试 调用方法“刷新”。

    无论是按钮、选择框还是列表视图,都必须先初始化该元素,然后才能开始使用刷新功能进行merkup增强。

    像这样更改您的代码:

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

    第一个 .selectmenu() 将初始化它,第二个 .selectmenu('refresh', true); 将设置它的样式。

    【讨论】:

    • 我觉得有点奇怪,你不能像我以前试过的那样把它分成 2 行,但无论如何......这行得通,谢谢你的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多