【问题标题】:How to put default value to zero when a input number is removed using backspace or using delete button?当使用退格键或删除按钮删除输入数字时,如何将默认值设置为零?
【发布时间】:2017-03-08 08:32:25
【问题描述】:

我有一个默认值为零的输入数字

如果用户完成了退格或删除按钮并删除了值,我如何将默认值零作为后退

这是我的代码

$(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;
    }
   });
}); 

这是我的小提琴

http://jsfiddle.net/HkEuf/10265/

【问题讨论】:

    标签: jquery


    【解决方案1】:

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

    keydownkeyup 事件表示按键被按下或释放,而keypress 事件表示字符正在输入。

    检查这个答案: https://stackoverflow.com/a/11030750/2611451

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

    【讨论】:

    • 谢谢,但是此代码不起作用(无法添加新的两位数)
    【解决方案2】:

    如果用户离开输入框并且其中没有任何值,您可以随时将 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')
        }
      })
    });
    

    blur 功能在用户点击输入框外部后检查输入框。

    【讨论】:

    • 此代码无效(无法添加新的两位数)
    • 我已经更新了我的代码,你可以在这里找到它:jsfiddle.net/HkEuf/10268
    • 谢谢,添加 $(this).focus(); 有意义吗?在 $(this).val('0')?? 之后
    • 我认为这行不通,我认为这不是一个好的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2018-04-11
    • 2017-03-30
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多