首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery设置input.value = input.title (或其他输入属性)

jQuery设置input.value = input.title (或其他输入属性)
EN

Stack Overflow用户
提问于 2012-04-17 01:27:14
回答 5查看 2K关注 0票数 0

我正在尝试弄清楚如何在页面加载时将文本字段的input值设置为其title的值,以此作为显示占位符文本的一种方式。我使用了一个严格的HTML4文档类型。我不想在输入值中存储占位符文本,因为我不希望没有javascript的人在键入之前必须删除文本。我希望用javascript添加它,然后在输入获得焦点时将其删除。我可以使用focus()blur()方法,但是我不知道如何编写初始的页面加载函数来将输入的标题传递给val()函数。

我现在有这样的代码:

代码语言:javascript
运行
复制
// This doesn't work, it grabs the page title:
$('#item-search').val(this.title);

// Works:
$('#item-search').focus(function() {
    if (this.value == this.title) {
        this.value = '';
    } 
});

// Works: 
$('#item-search').blur(function() {
    if (this.value == '') {
        this.value = this.title;
    } 
});
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-17 01:33:50

只需添加另一个变体,.val()可以accept a function as its parameter,修复您的this问题:

代码语言:javascript
运行
复制
$('#item-search').val(function () {
    return this.title;
});
票数 5
EN

Stack Overflow用户

发布于 2012-04-17 01:29:43

this是指当前作用域。在您的第一个示例中,它引用了document

你可能想要。

代码语言:javascript
运行
复制
$('#item-search').val($('#item-search').attr('title'));

更好的是:

代码语言:javascript
运行
复制
var $itemSearch = $('#item-search');
$itemSearch.val($itemSearch.attr('title'));
票数 3
EN

Stack Overflow用户

发布于 2012-04-17 01:30:37

代码语言:javascript
运行
复制
$('#item-search').val(this.title);

在此行中,this参考文档(html)并设置<title>。要完成您的工作,请执行以下操作:

代码语言:javascript
运行
复制
$('#item-search').val($('#item-search').attr('title'));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10178760

复制
相关文章

相似问题

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