0

我有一个占位符文本为“名字”的文本字段,因此当用户单击该字段时,文本消失,它允许他输入文本

HTML

  <input class="fname" type="text" placeholder="First Name"/>

JS

function placeHolderFallBack() {
if("placeholder" in document.createElement("input")) {  
    return;     //In chrome it comes here
}else { 
    // works fine in IE8,FF 
    } 

所以基本上上面的代码在chrome中不起作用,有什么想法吗?

4

2 回答 2

3

在 chrome 和 safari 中,占位符属性适用于 keyup。当您开始输入时,它会消失。

如果确实需要,请尝试这种方法

演示 - http://jsfiddle.net/NL2Dr/2/

var ttext;

$('input').focus(function(){
    ttext = $(this).attr('placeholder');            
    $(this).removeAttr('placeholder');
});
$('input').blur(function(){
    $(this).attr('placeholder', ttext);
});
于 2012-06-04T09:29:26.837 回答
0

感谢 Dipaks,但当您在选择其中一个输入时停用然后重新激活 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'));});
});
于 2012-08-07T13:03:22.390 回答