在jquery中重置输入的默认值

时间:2012-01-20 11:33:18

标签: 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, textarea').blur(function() {
if ($.trim(this.value) == ''){
this.value = this.defaultValue;
}
});

3 个答案:

答案 0 :(得分:1)

因为如果未定义defaultValue,您将获得'undefined'而不是''

答案 1 :(得分:1)

这是一种安全措施。如果this.defaultValueundefined,则返回空字符串,避免this.value接收未定义。

问题是这个属性仅适用于<input>´ and`,几乎限制了这种功能的范围。例如,在表单中选择是很常见的。

更直接的方法是使用在"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');

更多信息:

答案 2 :(得分:0)

在相关说明中,为什么不使用HTML5的占位符属性 - 您不必使用defaultValue。 http://www.w3schools.com/html5/att_input_placeholder.asp

据我所知,它不支持IE,但在其他人身上运作良好