Jquerymobile - 使用javascript创建选择菜单

时间:2012-09-11 12:53:12

标签: javascript jquery-mobile select-menu

我正在尝试使用jquerymobile和cordova 2.0.0创建和Android应用程序。我打算添加localStorage,它会将app的设置保存到android存储。现在我正试图强制我的jquerymobile选择菜单显示当前保存的值。

实施例: 想象一下,您有一个由3项(禁用,启用,兼容模式)组成的菜单(设置),您选择了兼容模式和保存设置。然后存储变量设置并设置为兼容性。但是当你下次加载设置时,它看起来像菜单(设置)被设置为禁用,因为它是列表中的第一个选项。所以我希望我的程序在设置中显示当前选中和保存的选项。我已经通过使用body onload调用load()函数来尝试它,它会从存储的值设置selectedIndex但它没有用(可能是我的错误代码)。

所以我需要我的javascript构建选择菜单并更改选项的顺序,但它不起作用。

这是我的HTML代码:

<div data-role="content" data-theme="c" id="content">
        <div data-role="fieldcontain" onLoad="load();">
            <label for="transitions" class="select">Prechody:</label>
                <select name="transitions" id="transitions">

                </select>
        </div>      
        <div data-role="fieldcontain">
            <label for="entriesNumber">Počet zobrazovaných príspevkov:</label>
            <input type="range" name="entriesNumber" id="entriesNumber" value="25" min="0" max="35"  />
        </div>
</div>

这里是javascript:

function load(){
var select = document.getElementById("transitions");
var option1 = document.createElement("option");
option1.setAttribute("value","vypnute");
option1.innerHTML("Vypnúť");
select.appendChild(option1);
var option2 = document.createElement("option");
option2.setAttribute("value","zapnute");
option2.innerHTML("Zapnúť");
select.appendChild(option2);
var option3 = document.createElement("option");
option3.setAttribute("value","kompatibilita");
option3.innerHTML("Zapnúť v režime kompatibility");
select.appendChild(option3);
}

如果您知道如何使用selectedIndex(http://www.w3schools.com/jsref/prop_select_selectedindex.asp)或任何其他更明确的方式来完成此操作,请在此处发布。如果没有,那么请尝试检查我的JS代码,以便它可以工作。

1 个答案:

答案 0 :(得分:0)

我明白了。只需要使用这段代码:

document.getElementById("selection").selectedIndex = 2/*selected value*/; 
$("#selection").selectmenu('refresh');

此外,如果您使用的是jquerymobile滑块(范围),则可以使用此代码更新其值:

$('#slider').val(updatedValue).slider('refresh');