当输入字段处于焦点时,占位符不会消失

Posted

技术标签:

【中文标题】当输入字段处于焦点时,占位符不会消失【英文标题】:Placeholder doesn't disappear when input field in focus 【发布时间】:2014-04-21 07:07:03 【问题描述】:

当用户选择字段时,表单上每个输入字段的占位符值应该消失,但事实并非如此。文档类型为 html5。

http://dailyspiro.com/index.html

<input required type="text" name="user-first-name" id="user-first-name" placeholder="First Name" class="text ui-widget-content ui-corner-all decorative-icon icon-user" />

【问题讨论】:

您使用的是什么浏览器/操作系统?在带有 Safari 7.0.2 的 OSX 10.9.2 上没有问题。 这里也没有问题 另外,在你输入之前它不应该“消失”- sridharkatakam.com/… 正常行为是在您开始输入时文本消失,而不是单击。任何数量的 JS/CSS 技巧都可以增加焦点消失的能力。 只要value 为空,placeholder 就会显示,而不仅仅是焦点。在该字段中输入一些内容,它应该会隐藏。 【参考方案1】:

您可以在 HTML 输入标签中直接使用 onfocusonblur 事件

&lt;input onfocus="this.placeholder = ''" onblur="this.placeholder = 'click me'" placeholder="click me"/&gt;

更多信息和例子click here

【讨论】:

【参考方案2】:

你可以用一点 js 来实现同样的事情。不确定您是在寻找还是纯 HTML。 @chiliNUT 的选项应该适合您。无论如何,因为我不完全清楚你想要什么......

这里有 2 个选项:

<input required type="text" name="user-first-name" id="user-first-name" class="your list of class names" placeholder="First Name" onfocus="if(this.value == 'First Name')  this.value = ''; " value="First Name"/>

<input required type="text" name="user-first-name" id="user-first-name" class="your list of class names" onfocus="if(this.value == 'First Name')  this.value = ''; " value="First Name"/>

还有obligatory fiddle。

【讨论】:

【参考方案3】:

CSS

input:focus::-webkit-input-placeholder  color:transparent; 
input:focus:-moz-placeholder  color:transparent;  /* Firefox 18- */
input:focus::-moz-placeholder  color:transparent;  /* Firefox 19+ */
input:focus:-ms-input-placeholder  color:transparent;  /* oldIE ;) */

看这里http://sridharkatakam.com/make-search-form-input-box-text-go-away-focus-genesis/

【讨论】:

啊。对不起!有点从那篇文章中欺骗了你的答案。还是不错的阅读!

以上是关于当输入字段处于焦点时,占位符不会消失的主要内容,如果未能解决你的问题,请参考以下文章

用户键入时如何保持输入占位符可见

HTML5 占位符在焦点上消失

如何实现占位符文本在 UITextField 中逐个字符消失

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

如何在 HTML5 的数字输入中显示占位符的文本

在焦点 jquery 上将占位符输入类型文本更改为密码