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

Javascript 如果值为空,如何设置输入的默认值?jQuery,javascript,jquery,html,Javascript,Jquery,Html,例如,我有一个默认值为5的输入。 但是用户使用backspace删除它,所以在此之后,我想再次设置默认值。假设您的输入有一个idtest,您可以像下面这样做 $('#test')。在('change blur',function()上{ if($(this).val().trim().length==0){ $(此).val(5); } }) 假设您的输入有一个id测试您可以像下面这样做 $('#test')。在('change blur',function()上{ if($(this).v

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

假设您的输入有一个id
test
,您可以像下面这样做

$('#test')。在('change blur',function()上{
if($(this).val().trim().length==0){
$(此).val(5);
}
})

假设您的输入有一个id
测试
您可以像下面这样做

$('#test')。在('change blur',function()上{
if($(this).val().trim().length==0){
$(此).val(5);
}
})

使用
defaultValue
获取初始设置的默认值:

$(':text')。在('blur',函数(e)上{
this.value=this.value.trim()| | this.defaultValue;
});

使用
defaultValue
获取初始设置的默认值:

$(':text')。在('blur',函数(e)上{
this.value=this.value.trim()| | this.defaultValue;
});


最好使用
模糊
而不是
键控
,原因如下

如果用户想要输入一个数字(只有一个数字),但不是5,假设是(3),会发生什么。如果用户将默认数字(本例中为(5))退格,并希望输入一个位数,则用户将永远无法输入

$('#test').on('blur',function(){
  if($(this).val().trim().length == 0){
    $(this).val(5);
  }
})

注意:还应使用
键控
函数检查值是否为整数,
!isNaN

最好使用
blur
而不是
keyup
,原因如下

如果用户想要输入一个数字(只有一个数字),但不是5,假设是(3),会发生什么。如果用户将默认数字(本例中为(5))退格,并希望输入一个位数,则用户将永远无法输入

$('#test').on('blur',function(){
  if($(this).val().trim().length == 0){
    $(this).val(5);
  }
})

注意:还应使用
键控
函数检查值是否为整数,
!isNaN

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

相反,我建议使用
change
blur
来给出(假设相关元素保存在
选择器
变量中):


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

相反,我建议使用
change
blur
来给出(假设相关元素保存在
选择器
变量中):


更通用的解决方案:

HTML


任何设置了
数据默认值
属性的输入或文本区域在清空后都将恢复为默认值。

更通用的解决方案:

<input class="test" type="text" value = "5" />
HTML


任何设置了
数据默认值
属性的输入或文本区域在清空后都会返回默认值。

对不起,这太糟糕了,我不明白为什么会得到任何升级票。一旦删除该值,它就会将其放回原处。大多数普通用户不知道如何输入不同的值。但现在我不能将5更改为任何其他值!^^像那样。我建议改为使用更改或模糊事件处理程序。我更新了答案。如果这个更新是公平的,请考虑删除下载,但这是可怕的,我不明白它得到任何投票。一旦删除该值,它就会将其放回原处。大多数普通用户不知道如何输入不同的值。但现在我不能将5更改为任何其他值!^^像那样。我建议改为使用更改或模糊事件处理程序。我更新了答案。如果这个更新是公平的,请考虑删除DevVoTS,如果您要求用户不更新您可以使用只读属性的值,或者您可以使用模糊、更改或KEYUP或KEYDUP事件将该值再次更新为默认值。如果您要求用户不更新该值,可以使用只读属性,或者您可以使用blur、change或keyup/keydown事件将值再次更新为默认值。我猜OP和其他人对此答案不感兴趣。要在IE 8(或更早版本)上实现此功能,您可以使用IE8 why event最新windows没有它。最好升级或更改浏览器以获得更好的体验@Jai:可能不会,但我仍然觉得这是一个比目前投票率更高的答案稍微好一点的答案(如果只是因为解释的原因)。然而,直到现在,我才意识到你和我已经有效地发布了相同的答案(我承认你是第一个!);但我也会离开我的,因为本地JS解决方案(我猜OP和其他人对这个答案不感兴趣。要在IE 8(或更早版本)上使用这个答案,你可以使用IE8 why event最新windows没有它。最好升级或更改浏览器以获得更好的体验…!@Jai:可能没有,但我仍然觉得这个答案比目前投票率较高的答案略好一些(如果仅仅是因为这些解释的话)。然而,直到现在,我才意识到你和我已经有效地发布了相同的答案(我承认你是第一个!);但是我也会因为原生JS解决方案而放弃我的答案(
<input class="test" type="text" value = "5" />
$('input[data-default], textarea[data-default]').on('change blur',function(){
   if($(this).val().length == 0) {
       $(this).val($(this).attr("data-default"));
   }
}
<input class="test" type="text" value = "5" />
//get default value
val = $('.test').val();

$('.test').on('change blur', function() {
  //check if change
  if ($(this).val().trim().length === 0) {
    $(this).val(val);
  }
})