我正在尝试弄清楚如何在页面加载时将文本字段的input
值设置为其title
的值,以此作为显示占位符文本的一种方式。我使用了一个严格的HTML4文档类型。我不想在输入值中存储占位符文本,因为我不希望没有javascript的人在键入之前必须删除文本。我希望用javascript添加它,然后在输入获得焦点时将其删除。我可以使用focus()
和blur()
方法,但是我不知道如何编写初始的页面加载函数来将输入的标题传递给val()
函数。
我现在有这样的代码:
// 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;
}
});
发布于 2012-04-17 01:33:50
只需添加另一个变体,.val()
可以accept a function as its parameter,修复您的this
问题:
$('#item-search').val(function () {
return this.title;
});
发布于 2012-04-17 01:29:43
this
是指当前作用域。在您的第一个示例中,它引用了document
。
你可能想要。
$('#item-search').val($('#item-search').attr('title'));
更好的是:
var $itemSearch = $('#item-search');
$itemSearch.val($itemSearch.attr('title'));
发布于 2012-04-17 01:30:37
$('#item-search').val(this.title);
在此行中,this
参考文档(html
)并设置<title>
。要完成您的工作,请执行以下操作:
$('#item-search').val($('#item-search').attr('title'));
https://stackoverflow.com/questions/10178760
复制相似问题