Chrome版本(关于:版本28.0.1491.0 canary和26.0.1410.65 Google Chrome): 操作系统(Mac OS X Mountain Lion): 只有Chrome Canary和常规Google Chrome才会出现此问题。 Firefox,Safari和IE9(经过Windows测试)的最新版本没有问题。
下面的代码将所有stateBill值更改为与文本值相同。
然后将其提交到另一个页面,然后单击浏览器页面的“后退”按钮。即使html源仍显示已选中,所选选项在下拉列表中不可见(即显示为空白)。
如果我没有执行jquery功能并提交并单击Back on browser,则所选选项文本会正确显示在下拉列表中。
可能是它在Chrome上的jquery,也可能是Chrome上的javascript问题。
有什么想法吗?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html>
</head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<form target="_self" action="http://google.com">
Click Submit. When it goes to google, Click Back button of browser.<br/>
Will see that drop down is empty!
<!-- Abbreviated states list -->
<select name="stateBill" class="required" id="stateBill">
<option value="">- Select -</option>
<option value="1">Alabama</option>
<option value="2">Alaska</option>
<option value="3" >American Samoa</option>
<option value="4" selected="selected">Arizona</option>
<option value="5">Arkansas</option>
</select>
<input type="submit" value="Submit">
<form>
</body>
<script>
$(function(){
// Change all state values to be the same as the state text.
var text;
$("#stateBill option:gt(0)").each(function(i,j){
text=$(j).text();
$(j).val(text);
});
})
</script>
<html>
答案 0 :(得分:19)
我遇到了同样的问题,在搜索Google时遇到了这个问题。对于其他任何绊脚石的人:我通过在表单上设置'autocomplete =“off”'来解决问题。当然,这可能不适合所有情况。
我在OSX 10.9上运行Chrome 30.0.1599.101。该网站使用Wicket框架(使用jQuery for AJAX)构建。
答案 1 :(得分:0)
我通过创建隐藏文本找到了一个简单的解决方法,就在提交或更改之前将其设置为所选值。
答案 2 :(得分:0)
简单的jQuery解决方法。
$(document).ready(function () {
$("select").each(function () {
$(this).val($(this).find('option[selected]').val());
});
})