显示指令(占位符)文本的Javascript文本输入字段

显示指令(占位符)文本的Javascript文本输入字段,javascript,jquery,forms,input,textfield,Javascript,Jquery,Forms,Input,Textfield,让文本输入字段以灰色显示在该字段中输入内容的说明的最佳方式是什么。当您关注该输入字段时,灰色的指令文本将消失,而您的输入文本将显示为黑色。如果删除输入文本并将焦点从该输入上移开,则说明灰色文本将重新出现 我曾尝试用jQuery实现这一点,但我在不同的浏览器中遇到了各种奇怪的问题。有时,当你回到屏幕上时,指令文本变成黑色,不再消失,像这样的问题 有标准的javascript库吗?我找不到 哦,说明文本不能是图像,因为根据浏览器的语言偏好,它必须有不同的语言版本。 <input type="t

让文本输入字段以灰色显示在该字段中输入内容的说明的最佳方式是什么。当您关注该输入字段时,灰色的指令文本将消失,而您的输入文本将显示为黑色。如果删除输入文本并将焦点从该输入上移开,则说明灰色文本将重新出现

我曾尝试用jQuery实现这一点,但我在不同的浏览器中遇到了各种奇怪的问题。有时,当你回到屏幕上时,指令文本变成黑色,不再消失,像这样的问题

有标准的javascript库吗?我找不到

哦,说明文本不能是图像,因为根据浏览器的语言偏好,它必须有不同的语言版本。


<input type="text" name="myText" value="Enter Name" style="color:gray" onfocus="this.value=''">

使输入透明,并将文本放在后面。检查值onload、onblur以确定文本是否可见。使其在焦点上不可见


例如:(您只需要使用不同的前景色设置标签和输入的样式)

您可以在jquery.use link中使用水印插件

范例

 $(this).Watermark("your instructions");
html
看看这个:

你不需要javascript

HTML5:

<input type="text" id="email" name="email" placeholder="Enter your email address">


这适用于现代浏览器。如果您将modernizr.js添加到页面中,那么它将在所有浏览器中工作。

占位符代码-名称

变量的名称为

var name=$("#con-name");
var nameval="Enter your name";



name.val(nameval);
name.focus(function(){  
     if (this.value == nameval ) { 
         this.value = ''; 
     }; 
    }).blur(function(){ 
         if (this.value == '') {    
         this.value = nameval;  
    };  
 });
 //submit to clear code
 $("#sub_con_page").click(function() {  
    if(name.val()==nameval) { 
       name.val(""); 
     } 
 });

这忽略了问题中的大部分要求,并且存在可访问性问题。这不起作用。因为在你专注于这个领域之后,说明书就永远消失了。我喜欢这个想法。指令文本也是可索引的,这很有意义。不过我还是选择了jQuery水印插件,因为它非常简单,并且使html非常干净。据我所知,他们用同样的机制实现了这一点……爱褪色!也许我以后会研究一下,据我所知,Modernizer只检测当前浏览器中是否存在html5功能,如占位符。这取决于你提供一个后备机制。我选择上面的jquery库作为正确答案,它实际上使用了html5的占位符属性(如果您愿意的话),并返回到它们的javascript机制。
<input type="text" id="email" name="email" placeholder="Enter your email address">
var name=$("#con-name");
var nameval="Enter your name";



name.val(nameval);
name.focus(function(){  
     if (this.value == nameval ) { 
         this.value = ''; 
     }; 
    }).blur(function(){ 
         if (this.value == '') {    
         this.value = nameval;  
    };  
 });
 //submit to clear code
 $("#sub_con_page").click(function() {  
    if(name.val()==nameval) { 
       name.val(""); 
     } 
 });