代码之家  ›  专栏  ›  技术社区  ›  Konrad Viltersten

占位符不会在Chrome中聚焦时消失

  •  8
  • Konrad Viltersten  · 技术社区  · 12 年前

    我已经根据下面的代码创建了一个输入。

    <div>
      <form id="me" runat="server">
      <input id="stuff" type="text" placeholder="Type here" runat="server" />
      </form>
    </div>
    

    不出所料,当我开始键入时,占位符文本将消失。这在Burning Cat浏览器中可以正常工作,但在Shiny Metal浏览器中则不然。是什么导致了它(样式、服务器标签、其他东西…)?对此该怎么办?

    3 回复  |  直到 12 年前
        1
  •  28
  •   Pawel Decowski    12 年前

    我今天遇到了同样的问题,我提出了一个纯CSS 解决方案 破解:

    input:focus::-webkit-input-placeholder {
        color: transparent;
    }
    
        2
  •  10
  •   A.Alinia    12 年前

    Firefox和chrome(以及safari)在HTML5占位符上的作用不同。如果您希望chrome使焦点上的占位符消失,您可以使用以下脚本:

    $('input:text, textarea').each(function(){
        var $this = $(this);
        $this.data('placeholder', $this.attr('placeholder'))
             .focus(function(){$this.removeAttr('placeholder');})
             .blur(function(){$this.attr('placeholder', $this.data('placeholder'));});
    });
    
        3
  •  0
  •   user1392191    12 年前

    您可以使用这个占位符jquery插件: placeholderFix 。 有了这个插件,占位符标记将在所有浏览器中以相同的方式工作,在不支持它的浏览器中也是如此。