我试图在输入标签内使用onfocus和onblur来清除输入文本,但是我将在许多字段中使用它,所以我发现了这个JQuery函数,但我似乎无法使它工作。
$('.default-value').each(function() {
var default_value = this.value;
$(this).focus(function(){
if(this.value == default_value) {
this.value = '';
}
});
$(this).blur(function(){
if(this.value == '') {
this.value = default_value;
}
});
});
我尝试将此内部脚本标记放在head标记内,并且我在要清除的输入中添加了一类default-value,但它不起作用。
所以我做错了什么?我不知道javascript,我正在链接到最新的JQuery。
并谢谢
答案 0 :(得分:3)
好像你在这里重新发明了@placeholder
。
只需使用这样的HTML:
<input type="text" placeholder="foo bar">
大多数现代浏览器都支持此功能。
然后,使用polyfill确保旧浏览器获得类似的行为。如果您有兴趣,我用jQuery插件格式编写了一个:http://mths.be/placeholder
按如下方式使用:
$('input, textarea').placeholder();
答案 1 :(得分:2)
我认为这不会因为关闭而起作用。 您需要记住每个字段的默认值。 e.g。
$('.default-value').each(function() {
$(this).attr('default_value',$(this).val());
$(this).focus(function(){
if($(this).val() == $(this).attr('default_value')) {
$(this).val('');
}
});
$(this).blur(function(){
if($(this).val() == '') {
$(this).val($(this).attr('default_value'));
}
});
});