【问题标题】:Firefox changes select radio box with every refresh!Firefox 每次刷新都会更改选择单选框!
【发布时间】:2011-04-25 17:10:08
【问题描述】:

我正在尝试将选择框动态添加到具有两个单选框的页面中,但 Firefox 的行为很奇怪。虽然第一个单选按钮明确定义为选中,但是当页面刷新时选中的会发生变化(用 F5 键)。

完整的html是(查看here):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
    <form>
        <div id="txt0"></div>
        <input value="10" type="radio" name="a" checked="checked">
        <input value="11" type="radio" name="a">
    </form>
    <script type="text/javascript">
        window.onload = function(){
            document.getElementById('txt0').innerHTML = '<select name="sa"></select>';    
        };
    </script>
</body>
</html>

【问题讨论】:

  • Opera 表现正常(已测试)
  • 它显然在 FF 4 中这样做,但不是在 jsfiddle:jsfiddle.net/userdude/c3Lrr
  • jsFiddle 有很多脚本并动态显示内容。我对 /my own web server/ 有一个复杂的问题,但这是简化版。
  • 我会把它作为一个错误提交给 FF 团队。这种行为背后似乎完全没有逻辑。
  • 嗯,当我将它复制到我的桌面并从那里运行它时,它也会这样做。似乎出错的地方是设置了 innerHTML。

标签: javascript html firefox


【解决方案1】:

看起来像是某种缓存问题。做了一些测试:

  • 使用 CTRL-F5 刷新(绕过缓存设置)有效
  • 更改其他无线电输入的名称​​工作
  • 为两个输入提供一个 id 不起作用。
  • 将#txt0 放在输入工作之后。
  • 使用 appendChild 添加选择标签不起作用
  • 将无线电输入置于 单独的 div 不起作用
  • 使用checkedchecked=true 不起作用
  • 向选择框添加选项不起作用
  • 在 #txt0 和第一个无线电输入之间放置一个 div 无效
  • 超时后创建 Select 标记不起作用
  • 添加元标记以防止缓存不起作用
  • 添加document.forms[0].a[0].checked = 'checked'worked(哦!)

无论如何,它是一个recognised Firefox problem,所以你唯一能做的就是使用上面找到的一种解决方法,然后等到 ff 解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多