重置jquery中输入的默认值

重置jquery中输入的默认值,jquery,input,default-value,Jquery,Input,Default Value,我不记得为什么要使用this.defaultValue?this.defaultValue:“”:在下面的代码中,我只添加了this.defaultValue $('input:text, textarea').blur(function() { if ($.trim(this.value) == ''){ this.value = (this.defaultValue ? this.defaultValue : ''); } }); 为什么不这样做: $('input:text, texta

我不记得为什么要使用
this.defaultValue?this.defaultValue:“”:
在下面的代码中,我只添加了
this.defaultValue

$('input:text, textarea').blur(function() {
if ($.trim(this.value) == ''){
this.value = (this.defaultValue ? this.defaultValue : '');
}
});
为什么不这样做:

$('input:text, textarea').blur(function() {
if ($.trim(this.value) == ''){
this.value = this.defaultValue;
}
});

因为如果未定义
defaultValue
,您将得到
'undefined'
而不是相关注释上的
'

,为什么不使用HTML5的占位符属性-您不必玩弄defaultValue


据我所知,它在IE上不受支持,但在其他浏览器上运行良好

这是一种安全性。如果
此.defaultValue
未定义
,则返回空字符串,避免
此.value
接收未定义

问题是,此属性仅适用于
')和
`,这在很大程度上限制了此类功能的范围。例如,在表单中有select是很常见的

更直接的方法是使用将默认值存储在
“data-”
属性中。这是HTML5的一个特性,但它有一种向后兼容性,因为它们只是html属性

<select data-defaultValue="1">
    <option value="1">One</option>
    <option value="2">Two</option>
</select>
更多信息:

$('select').attr('data-defaultValue');
// or
$('select').data('defaultValue');