使用disabled =“disabled”的Firefox中的奇怪错误

时间:2014-05-05 12:14:50

标签: javascript jquery html firefox

我正在讨论ff中的错误:

请参阅http://nocturne.wmw.cc/bugff.html(在jsfiddle中不可重复 - 太糟糕了)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  </head>
<body>
 <button disabled="disabled">sdf</button>
 <script>
  jQuery(function(){
    if(!jQuery('button').is(':disabled'))
      alert('Is not disabled!');
    jQuery('button').removeAttr('disabled');
  });
</script>
</body>
</html>

现在问题:

  1. 如果我第一次加载,一切正常。
  2. 如果我使用 Ctrl + r 重新加载页面,alert()会显示错误消息。
  3. 如果我使用 Ctrl + Shift + r 重新加载,则不会出现错误。
  4. 我确实使用Microsoft®Windows®7。 至少在FF28,FF29可再现。

    如何解决?

2 个答案:

答案 0 :(得分:2)

问题似乎与存储表单元素的用户输入的机制相同,按钮的状态已被缓存。

可能的解决方案(参见:How can I stop Firefox from caching the contents of a textarea on localhost?):

<button disabled="disabled" autocomplete="off">sdf</button>

http://jsfiddle.net/doktormolle/4ZLd9/show/

答案 1 :(得分:0)

尝试禁用而非禁用=&#34;禁用&#34;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <body>
    <button disabled>sdf</button>
    <script>
      jQuery(function(){
        if(!jQuery('button').is(':disabled'))
         alert('Is not disabled!');
       jQuery('button').removeAttr('disabled');
      });
     </script>
  </body>
</html>