我正在编写jQuery Mobile App。 我正在通过以下声明更改下拉选择选项: - $( “#DataBaseNames”)VAL(分贝);
我确信传递了正确的数据库值,因为我通过警报检查了它。 当我向下钻取下拉菜单时,它还会显示所选的正确文本,但下拉列表本身并未显示所选的正确文本。
我需要插入任何刷新调用吗?
编辑: - 添加代码,以下来自phill的答案解决了它
<script type="text/javascript">
$("#@ViewBag.DivTitle").live('pageshow', function () {
var db = getCookie("DataBaseNames");
$("#DataBaseNames").val(db);
$("#DataBaseNames option[value='"+ db + "']").attr("selected", "selected");
// refresh value , Following is what is required
$('select').selectmenu('refresh');
$("#cmdLogOn").live("click", function () {
var dbSelected = $("#DataBaseNames option:selected").text();
setCookie('DataBaseNames', dbSelected);
});
});
function setCookie(name, value) {
var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
</script>
答案 0 :(得分:37)
刷新更新自定义选择
这用于更新自定义选择以反映本机选择元素的值。如果数量为 select中的选项与中的项目数不同 自定义菜单,它将重建自定义菜单。另外,如果你传递了一个真实的 参数你可以强制重建发生。
//refresh value
$('select').selectmenu('refresh');
//refresh and force rebuild
$('select').selectmenu('refresh', true);
文档:
答案 1 :(得分:2)
我查了this link,发现它适合我。试试这个:
var myselect = $("select#YourDropdownID");
myselect[0].selectedIndex =0;
myselect.selectmenu("refresh");
答案 2 :(得分:0)
如果您想根据另一个使用此更改一个下拉列表。
<link href="code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet"/>
<link href="jquery/css/index.css" rel="stylesheet"/>
<link href="../favicon.ico" rel="shortcut icon"/>
<link href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700" rel="stylesheet"/>
<link href="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.1/jquery.mobile-1.4.1.min.js"></script>
<script type="text/javascript">
function ItemNo()
{
var no = $('#sltItemNo')[0].selectedIndex;
var myselect = $("select#sltItemName");
myselect[0].selectedIndex =no;
myselect.selectmenu("refresh");
}
function ItemName()
{
var no = $('#sltItemName')[0].selectedIndex;
var myselect = $("select#sltItemNo");
myselect[0].selectedIndex =no;
myselect.selectmenu("refresh");
}
</script>
<select id="sltItemNo" onchange="ItemNo()" data-shadow="false" data-mini="true">
<option value="Abc">1</option>
<option value="Cde">2</option>
<option value="Efg">3</option>
</select>
<select id="sltItemName" onchange="ItemName()" data-shadow="false" data-mini="true">
<option value="1">Abc</option>
<option value="2">Cde</option>
<option value="3">Efg</option>
</select>