首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击后清除TEXTAREA值(onFocus)

单击后清除TEXTAREA值(onFocus)
EN

Stack Overflow用户
提问于 2011-02-18 02:34:15
回答 9查看 32.3K关注 0票数 5

我目前正在使用..

代码语言:javascript
运行
复制
onfocus="this.value=''; return false;"

在我的文本区域中清除留下评论的值。但是,当您单击输入注释并键入一些内容时,如果您在框外单击以阅读页面上的其他内容,然后再次单击文本区域框以返回到您的注释,则会清除您当前的输入。

有没有办法在最初的点击时清除文本区,只是为了清除默认值,而不是在浏览器页面会话的其余部分中清除其余的点击?

EN

回答 9

Stack Overflow用户

发布于 2011-02-18 02:39:17

最好将指令放到标签标签中,将其放置在文本区域上,然后如果文本区域被聚焦,则将其隐藏或显示。这样做的原因是因为您的文本区将填充指令,这些指令可能会被发送,如果它们在表单中。

但是,要解决你的问题,你要做的就是:

代码语言:javascript
运行
复制
onfocus="if(this.value== "your initial text"){this.value=''}; return false;"
票数 8
EN

Stack Overflow用户

发布于 2012-10-09 22:29:40

我认为将逻辑从内容中分离出来是一个好习惯。那么,使用jQuery (我们都使用jQuery,不是吗?)你可以这样做:

代码语言:javascript
运行
复制
$(document).ready(function() {
    var _bCleared = false;
    $('form textarea').each(function()
    {
        var _oSelf = $(this);

        _oSelf.data('bCleared', false);
        _oSelf.click(function()
        {
            if (!_oSelf.data('bCleared'))
            {
                _oSelf.val('');
                _oSelf.data('bCleared', true);
            }
        });
    });
});

这将遍历站点上的所有文本区域,并在单独的数据绑定中存储关于它们的清除状态的布尔值。onclick事件也是为每个文本区域单独处理的,所以你可以在一个页面上有多个文本区域/文本区域清除,而不需要Javascript飞溅你的html。

票数 3
EN

Stack Overflow用户

发布于 2011-02-18 02:39:21

这会有帮助的

代码语言:javascript
运行
复制
function clearTA {
   if(this.value != "type here") {
      this.value = ''; 
      return false;
   }
}

和onfocus html属性

代码语言:javascript
运行
复制
...onfocus="clearTA()"..
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5033044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档