1

我们进行了一项调查,其中某些页面只有一个 textarea 问题。由于它是唯一的输入,因此我们希望它专注于该框的 onload。但我们也希望在同一个文本区域中有一个占位符样式的文本。

有很多解决方案可以让这两个函数在所有浏览器上都运行,例如Ajaxblender 的这个。但我希望提示在焦点后保留,然后在输入文本时消失。有任何想法吗?

注意 - 我意识到 HTML 规范声明占位符元素应该在焦点上消失。所以也许我应该说我想要一个“水印”。此用户界面适用于计算机知识水平较低的老年男性 - 他们需要我们可以提供的任何帮助。

必须使用 IE8 :(

4

1 回答 1

4

如果我理解这个问题,你可以尝试类似

HTML

<textarea id="first">Instructions go here</textarea>

jQuery

$('#first').focus().one('keydown', function(){
    $(this).val('');    
});

示例:http: //jsfiddle.net/jasongennaro/AYRyH/

解释

  1. .focus()将焦点放在 onload 的字段上。
  2. .one()为元素触发一次事件
  3. keydown我们删除当前值,这是我们在开始时添加的指令。

编辑

鉴于您的评论

我需要它的功能更像一个标准占位符,所以如果你输入一些内容,然后删除它,使该字段为空白,它会返回显示原始提示。

你可以这样做......如果那里没有任何东西,请捕获value然后将其放回textareablur

var a = $('#first').val();

$('#first').focus().one('keydown', function(){
    $(this).val('');    
});

$('#first').blur(function(){
    if($(this).val() == ''){
       $(this).val(a); 
    }
})

示例 2:http: //jsfiddle.net/jasongennaro/AYRyH/1/

于 2011-10-26T00:52:29.267 回答