Firefox的错误 - 禁用输入的属性在刷新时不重置

Ste*_*esa 100 html firefox textbox input

我发现了我认为是Firefox的一个错误,我想知道这是否真的是一个错误,以及任何解决方法.

如果您使用以下来源创建基本网页:

<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
  </head>
  <body>
    <div>
      <input id="txtTest" type="text" />
      <input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
      <input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
      <input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果您disabletextbox动态再刷新页面,则textbox仍然会被禁用,而不是重新回到原来的状态没有被禁用.我在IE8和Chrome中尝试过这种方法,并且这些操作与我期望的一样,textbox当我刷新时将其重置为未禁用.

另一个有趣的信息是,如果输入是a checkbox而不是a ,它仍然会做同样的事情textbox.

Ste*_*esa 123

这是Firefox 的"功能",可以记住页面刷新时的表单输入值.要解决此问题,只需autocomplete="off"在包含输入的表单上设置,或直接设置为输入.

这会停止自动完成工作,并阻止浏览器记住输入字段的状态.

或者,您可以通过单击CTRL + F5"硬刷新".这将完全重置当前页面.

  • 我只是在用户单击后退按钮时遇到此问题,看起来像`autocomplete ="off"`在这种情况下不起作用. (4认同)
  • 你甚至必须在按钮上这样做.我发现很难相信这是一个功能,而不是一个错误? (4认同)

Jos*_*Fox 9

要处理后退按钮,请执行此操作(从此处)

    window.addEventListener('pageshow', PageShowHandler, false);
    window.addEventListener('unload', UnloadHandler, false);

    function PageShowHandler() {
        window.addEventListener('unload', UnloadHandler, false);
    }

    function UnloadHandler() {
        //enable button here
        window.removeEventListener('unload', UnloadHandler, false);
    }
Run Code Online (Sandbox Code Playgroud)