重置jquery中输入的默认值

Posted

技术标签:

【中文标题】重置jquery中输入的默认值【英文标题】:Reset default value of input in jquery 【发布时间】:2012-02-14 23:32:45 【问题描述】:

我不记得为什么我在下面的代码中使用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;

);

【问题讨论】:

【参考方案1】:

因为如果defaultValue 没有定义,你会得到'undefined' 而不是''

【讨论】:

【参考方案2】:

这是一种安全。如果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');

更多信息:

HTML5 data attributes jQuery .data()

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于重置jquery中输入的默认值的主要内容,如果未能解决你的问题,请参考以下文章

将 jQuery 数据表重置为默认值

将表单的所有输入重置为默认值而不重新加载

WPF 自定义控件将文本框文本重置为默认值

jQuery Chosen 使用

jQuery 如果输入值是默认值,则在提交时防止默认值

jQuery:输入文本默认值,单击清除值,如果键入的值被删除,则获取默认值bac