Chrome上的<select> <option>值修改和Back按钮可能存在错误

use*_*749 13 google-chrome button back

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功能并提交并单击"在浏览器上返回",则所选选项文本将正确显示在下拉列表中.

也许它在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>
Run Code Online (Sandbox Code Playgroud)

Chr*_*der 19

我遇到了同样的问题,在搜索Google时遇到了这个问题.对于其他任何绊脚石的人:我通过在表单上设置'autocomplete ="off"'来解决问题.当然,这对于所有情况都可能并不理想.

我在OSX 10.9上运行Chrome 30.0.1599.101.该网站使用Wicket框架(使用jQuery for AJAX)构建.

  • 你是怎样找到它的?这是一个纯粹的黑魔法.我们应该被正式指定为巫师. (7认同)
  • 你救了我几个小时 (3认同)
  • 天才.我已经花了好几个小时......但你节省了我几个小时.谢谢. (3认同)
  • 哦,我的话.我开始认为这是不可能的,并准备重新执行整个页面(从后面的代码写入asp.net`DropDownLists`到页面)并使用`UpdatePanel`.这个问题是一个巨大的决定因素.我设置`AutoComplete ="Off"`它有效.是的,这为我节省了大量的工作时间. (2认同)

use*_*749 0

我找到了一个简单的解决方法,方法是创建隐藏文本,然后在提交或更改之前将其设置为所选值。