使用 JQuery 移动设备导航时,我无法从输入中检索某些值。首次打开页面时,一切都按预期工作。但是,如果我离开然后返回页面,则输入的值不再对应于字段中的实际值。html如下
<!doctype html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="stylesheet" href="/static/jquery-ui-1.10.3.custom.min.css">
<link rel="stylesheet" href="/static/jquery-mobile/css/themes/default/jquery.mobile-1.3.2.min.css">
<script src="/static/jquery-1.9.1.min.js"></script>
<script src="/static/jquery-ui/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min.js"></script>
<script src="/static/jquery-mobile/js/jquery.mobile-1.3.2.min.js"></script>
<!-- CSS: implied media="all" -->
</head>
<body>
<div data-role="page" id = "main-page">
<div data-role="header" style="overflow:hidden;">
</div>
<div id = "home" data-role="content">
<input type = "text" name = "input_a" id = "input_a">
<select id = "select_a" name = "select_a">
<option value = "a">A</option>
<option value = "b">B</option>
<option value = "c">C</option>
</select>
</div>
</div>
<script type="text/javascript">
function set_condition()
{
var the_variable = "A";
var page = $('[data-role="page"]:last');
if (the_variable === "A")
{
page.find("#select_a[value='a']").remove();
page.find("[name=select_a]").selectmenu('refresh').val('b');
}
console.log($('#select_a').val());
}
$(document).off('pageshow').on('pageshow', '#main-page', function ()
{
set_condition();
});
</script>
</body>
</html>
所以,例如。当我第一次打开页面并选择选项 B 然后在我的 chrome 控制台(和 javascript)中输入
$('#select_a).val()
这将返回“b”。如果我随后浏览站点的剩余部分,然后返回同一页面并将选项更改为选项 C 并键入相同的命令,仍然会返回“b”。文本输入也出现了同样的问题。即,如果输入留空 - 导航后不返回任何值。同样,如果在导航空白时输入字段中留下一个数字,则输入字段为空但返回一个值...
因此,这些输入的值在导航后保持不变,即使在选择的情况下,值似乎已更改。为什么是这样?