重置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.defaultValue
是undefined
,则返回一个空字符串,避免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中输入的默认值的主要内容,如果未能解决你的问题,请参考以下文章