HTML 输入字段提示

Posted

技术标签:

【中文标题】HTML 输入字段提示【英文标题】:HTML input field hint 【发布时间】:2011-09-10 22:09:41 【问题描述】:

我想向用户提示他需要在我的文本字段中输入的内容。但是,当我设置该值时,一旦用户单击文本字段,它就不会消失。如何让它消失?

<form action="input_password.htm">
  <p>Username:<br><input name="Username" value="Enter username.." type="text" size="20" maxlength="20"></p>
</form>

【问题讨论】:

你为什么要在你的值中添加提示...??? @harishtps:所以用户会得到一个指示,他需要输入什么值? @Richard JP Le Guen:是的,不过应该在现场。 这个问题与提示无关 使用占位符属性,placeholder="输入用户名" 【参考方案1】:

使用一点 javascript

<input 
  value="Enter username..." 
  onfocus="if (this.value === 'Enter username...') this.value=''" ... />

html5 有一个很好的属性,称为placeholder

<input placeholder="Enter username.." ... />

但旧浏览器不支持此属性。

【讨论】:

在用户聚焦后保留提示文本:onfocus="if (this.value == 'Hint text..') this.value=''" value="Hint text. ." onblur="if (this.value == '') this.value='提示文字..'" 如果用户在框中输入Enter username...怎么办? 然后文本字段被清除,因此如果占位符文本是该字段的可能输入,则使用此 polyfill 需要提前考虑。在这种情况下,Enter username.. 是极不可能的用户名选择。 :)【参考方案2】:

这正是你想要的

$(document).tooltip( selector: "[title]",
                              placement: "top",
                              trigger: "focus",
                              animation: false); 
<form id="form">
    <label for="myinput1">Browser tooltip appears on hover but disappears on clicking the input field. But this one persists while user is typing within the field</label>
    <input id="myinput1" type="text" title="This tooltip persists" />
    <input id="myinput2" type="text" title="This one also" />
</form>

[ref]

【讨论】:

【参考方案3】:

使用 HTML5,您现在可以像这样使用占位符属性:

<form action="demo_form.asp">
  <input type="text" name="fname" placeholder="First name"><br>
  <input type="text" name="lname" placeholder="Last name"><br>
  <input type="submit" value="Submit">
</form> 

http://www.w3schools.com/tags/att_input_placeholder.asp

【讨论】:

【参考方案4】:

我有同样的问题,我已将此代码添加到我的应用程序中,它对我来说工作正常。

步骤-1:添加 jquery.placeholder.js 插件

步骤-2:在您的区域编写以下代码。

$(function () 
       $('input, textarea').placeholder();
);

现在我可以在输入框上看到占位符了!

【讨论】:

【参考方案5】:

最好的提示方式是这样的占位符:

&lt;input.... placeholder="hint".../&gt;

【讨论】:

这是真正的答案。它很简单,不需要 javascript 或悬停即可工作。该问题被标记为 HTML,没有提及 javascript。【参考方案6】:

定义工具提示文本

<input type="text" id="firstname" name="firstname" tooltipText="Type in your firstname in this box"> 

初始化和配置脚本

<script type="text/javascript">
var tooltipObj = new DHTMLgoodies_formTooltip();
tooltipObj.setTooltipPosition('right');
tooltipObj.setPageBgColor('#EEE');
tooltipObj.setCloseMessage('Exit');
tooltipObj.initFormFieldTooltip();
</script> 

【讨论】:

感谢 harishtps,我复制并粘贴了代码,但没有任何反应? 糟糕的答案,您没有指定在哪里可以找到 DHTMLgoodies_formTooltip 添加外部库的来源以改进您的答案。【参考方案7】:

我认为对于您的情况,您的 html 输入简单易行,您可以 可能会添加属性标题

<input name="Username" value="Enter username.." type="text" size="20" maxlength="20" title="enter username">

【讨论】:

+1 这真的很聪明,但只有当您将鼠标悬停在该字段上时才有效。无论如何我都会使用它。谢谢。 感谢您的赞赏。 =)【参考方案8】:

如果您的意思是像背景中的文本,我会说您在输入字段中使用标签并使用 CSS 将其放置在输入上,当然。使用 JS,您可以在输入接收到值时淡出标签,并在输入为空时淡入标签。这样,用户就不可能提交描述,无论是出于偶然还是故意。

【讨论】:

【参考方案9】:

您需要通过 Javascript 将 onFocus 事件附加到输入字段:

<input type="text" onfocus="this.value=''" value="..." ... />

【讨论】:

+1 为简单起见。 onfocus 的反面是什么?我试过你的解决方案,效果很好。唯一的问题:如果用户将鼠标移出该字段,则该值消失了。您能以某种方式将其带回来吗? 好的,现在自己找到了。我添加了:onblur="if (this.value=='') this.value='请输入任何内容...'" 在用户聚焦后保留提示文本:onfocus="if (this.value == 'Hint text..') this.value=''" value="Hint text. ." onblur="if (this.value == '') this.value='提示文本..'" 随着 HTML5 的兴起,请考虑使用 placeholder 标签,如 aorcsik 的回答中所述。 placeholder 是现代答案,这个答案真的应该被删除。该解决方案具有破坏性。它将清除用户在重新聚焦到该字段后输入的任何值。

以上是关于HTML 输入字段提示的主要内容,如果未能解决你的问题,请参考以下文章

需要更新的记录有一个包含 & 的字段名称,TOAD 提示输入一个变量

使用美元符号和逗号格式化货币输入字段

为HTML5 Placeholder占位文字添加CSS样式

使用vue在element的基础上封装带提示的input输入框

prompt

PHP 表单验证