首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果值为空,如何设置输入的默认值?jQuery

如果值为空,如何设置输入的默认值?jQuery
EN

Stack Overflow用户
提问于 2016-05-17 11:08:13
回答 6查看 15.3K关注 0票数 1

例如,我有默认值为5的输入,但是用户使用backspace删除它,所以之后我想再次设置默认值。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-05-17 11:09:57

假设您的输入有一个id test,如下所示

代码语言:javascript
复制
$('#test').on('change blur',function(){
      if($(this).val().trim().length === 0){
        $(this).val(5);
      }
    })
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="test" type="text" value = "5" />

票数 4
EN

Stack Overflow用户

发布于 2016-05-17 11:14:54

如果最初设置为defaultValue,则使用获取默认值:

代码语言:javascript
复制
$(':text').on('blur', function(e){
   this.value = this.value.trim() || this.defaultValue;
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' value='5'>

票数 2
EN

Stack Overflow用户

发布于 2016-05-17 11:15:56

我建议不要使用keyup,因为这将阻止用户删除默认值,然后用新值进行更新(因为在keyup被backspace键触发后,就不会有值)。

相反,我建议使用changeblur来提供(假设相关元素保存在selector变量中):

代码语言:javascript
复制
$(selector).on('change blur', function() {
    // sets the value of the element based on the current-value;
    // if the value is equal to an empty string ('') once the
    // leading and trailing white-space is removed (using 
    // String.prototype.trim()) then we set the value to the
    // defaultValue (the value held by the <input> on page-load)
    // otherwise we set it to the current-value:
    this.value = this.value.trim() === '' ? this.defaultValue : this.value;
});

如果您希望在普通JavaScript中实现相同的功能--同样假设相关元素保存在selector变量中--您可以使用以下方法:

代码语言:javascript
复制
function defaultIfEmpty(){
    let el = this;
    el.value = el.value.trim() === '' ? el.defaultValue : el.value;
}
selector.addEventListener('change', defaultIfEmpty);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37274384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档