jQuery输入文本清除,返回默认无输入
我目前正在使用内联javascript清除焦点上输入文本的默认值。如果用户未输入任何内容,则默认值会显示一次。代码如下:jQuery输入文本清除,返回默认无输入,jquery,forms,textinput,Jquery,Forms,Textinput,我目前正在使用内联javascript清除焦点上输入文本的默认值。如果用户未输入任何内容,则默认值会显示一次。代码如下: onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" 问题在于,我必须将这个片段添加到整个站点的每个文本输入中。对于每个文本输入(:text),jQuery的等价物是什么 我编造了以下两个错误。(
onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;"
问题在于,我必须将这个片段添加到整个站点的每个文本输入中。对于每个文本输入(:text),jQuery的等价物是什么
我编造了以下两个错误。(1) 它清除文本字段可能具有的任何值。我只想在值为默认attr值时清除它。(2) 模糊函数不插入默认值。我很确定我错过了一些非常简单的东西
$(':text').focus(function() {
var value = $(this).val();
var defval = $(this).attr('value');
if(value == defval) {
$(this).val('');
}
});
$(':text').blur(function() {
var value = $(this).val();
var defval = $(this).attr('value');
if(value == '') {
$(this).val(defval);
}
});
提前谢谢 我建议使用html5占位符而不是defaultValue,让现代浏览器来处理这个问题,只有在没有占位符支持的情况下才使用JS 无论如何,这是一个使用defaultValue的简单实现:
$('input[type="text"]').on({
focus: function(){
var $this = $(this);
if($this.val() === $this[0].defaultValue) $this.val('');
},
blur: function(){
var $this = $(this);
if($this.val() === '') $this.val($this[0].defaultValue);
}
});
另外,我强烈建议使用插件,因为它可以处理所有这些情况和一些可能的情况
看一看:
美元(this.val()和美元(this.attr('value')不会给出相同的结果吗?@richard。否。
$(this).attr('value')
将提供value
属性中的内容,而$(this).val()将提供实际值。示例:当您更改文本字段的值并查看源代码时,它没有更改。Ayman是正确的@Andre,我正在避免使用插件,并尝试自己编写代码,以帮助我更好地掌握这门语言。这看起来很简单,不需要大量的插件就可以完成。我可能错了。