Jquery 当使用backspace或delete按钮删除输入号码时,如何将默认值设置为零?

Jquery 当使用backspace或delete按钮删除输入号码时,如何将默认值设置为零?,jquery,Jquery,我有一个输入数字,它应该总是默认值为零 如果用户执行了backspace或delete按钮并删除了该值,我如何将默认值0设置为back 这是我的密码 $(document).ready(function () { $(".numbersonly").keypress(function (e) { if(this.value.length=='0') { $(this).val('0'); return false; }

我有一个输入数字,它应该总是默认值为零

如果用户执行了backspace或delete按钮并删除了该值,我如何将默认值0设置为back

这是我的密码

$(document).ready(function () {
  $(".numbersonly").keypress(function (e) {
     if(this.value.length=='0')
     {
             $(this).val('0');
     return false;
     }

     if(this.value.length==2) return false;

     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
        //display error message
        $("#errmsg").html("Digits Only").show().fadeOut("slow");
        $(this).val('0')
               return false;
    }
   });
}); 
$(文档).ready(函数(){
$(“.numbersonly”)。按键(功能(e){
if(this.value.length=='0')
{
$(this.val('0');
返回false;
}
if(this.value.length==2)返回false;
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
//显示错误消息
$(“#errmsg”).html(“仅限数字”).show().fadeOut(“慢”);
$(this.val('0'))
返回false;
}
});
}); 
这是我的小提琴


使用
keyup
而不是
keypress
,它可以解决您的问题

keydown
keydup
事件表示按键被按下或释放,而
keypress
事件表示正在键入的字符

检查以下答案:


这些活动的目的完全不同。使用
keypup
keypdown
识别物理键,使用
keypress
识别键入的字符。这两项任务根本不同,事件也不同;不要试图把两者混为一谈。特别是,
keyCode
上的
keyCode
事件通常是多余的,不应使用(旧IE除外,但有关更多信息,请参阅下面的链接文档);对于可打印的按键,它通常与
which
charCode
相同,尽管浏览器之间存在一些差异。

使用
keyup
而不是
keypress
,它解决了您的问题

keydown
keydup
事件表示按键被按下或释放,而
keypress
事件表示正在键入的字符

检查以下答案:


这些活动的目的完全不同。使用
keypup
keypdown
识别物理键,使用
keypress
识别键入的字符。这两项任务根本不同,事件也不同;不要试图把两者混为一谈。特别是,
keyCode
上的
keyCode
事件通常是多余的,不应使用(旧IE除外,但有关更多信息,请参阅下面的链接文档);对于可打印的按键,它通常与
which
charCode
相同,尽管浏览器之间存在一些差异。

如果用户离开输入框,并且输入框中没有这样的值,则始终可以放回0:

$(document).ready(function() {
  $(".numbersonly").keyup(function(e) {

    if (this.value.length > 2) {
      $("#errmsg").html("Digits Only").show().fadeOut("slow");
      $(this).val($(this).val().substr(0, this.value.length - 1));
      return false;
    }

  });
  $(".numbersonly").blur(function() {
    console.log("blur")
    if ($(this).val() == "") {
      $(this).val('0')
    }
  })
});

模糊功能会在用户单击输入框外部后检查输入框。

如果用户离开输入框,并且输入框中没有值,则始终可以将0放回:

$(document).ready(function() {
  $(".numbersonly").keyup(function(e) {

    if (this.value.length > 2) {
      $("#errmsg").html("Digits Only").show().fadeOut("slow");
      $(this).val($(this).val().substr(0, this.value.length - 1));
      return false;
    }

  });
  $(".numbersonly").blur(function() {
    console.log("blur")
    if ($(this).val() == "") {
      $(this).val('0')
    }
  })
});

模糊功能在用户单击输入框外部后检查输入框。

此代码不起作用(无法添加新的两位数)。我已更新了代码,您可以在此处找到:谢谢,添加$(此).focus()有意义吗;在$(this.val('0')之后?我认为它不起作用,也不认为这是一种好的做法。此代码不起作用(无法添加新的两位数)。我已更新了我的代码,您可以在这里找到它:谢谢,添加$(this.focus())有意义吗;$(this).val('0')?我认为它不起作用,也不认为这是一种好的做法。谢谢,但此代码不起作用(无法添加新的两位数)。谢谢,但此代码不起作用(无法添加新的两位数)