【问题标题】:Reset default value of input in jquery重置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;
}
});

【问题讨论】:

    标签: jquery input default-value


    【解决方案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');
      

      更多信息:

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2017-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-05
          • 1970-01-01
          • 2012-04-23
          相关资源
          最近更新 更多