Javascript 文本框仅允许十进制数字、删除和退格

Javascript 文本框仅允许十进制数字、删除和退格,javascript,jquery,html,Javascript,Jquery,Html,我有一个适用于十进制数的代码,只允许十进制数后有两位数字。我的问题是如何将代码修改为: 允许退格、删除和删除 如何使代码动态,使其不使用id属性,而是在html上传递方法中的元素,并在javascript/jquery中接受和使用该元素 这是我的密码: 函数isNumberKey(evt,元素){ var charCode=(evt.which)?evt.which:event.keyCode 如果(字符码>31&(字符码57)) 返回false; 否则{ var len=$('#rate')

我有一个适用于十进制数的代码,只允许十进制数后有两位数字。我的问题是如何将代码修改为:

  • 允许退格、删除和删除
  • 如何使代码动态,使其不使用
    id
    属性,而是在html上传递方法中的元素,并在
    javascript
    /
    jquery
    中接受和使用该元素
  • 这是我的密码:

    函数isNumberKey(evt,元素){
    var charCode=(evt.which)?evt.which:event.keyCode
    如果(字符码>31&(字符码<48 | |字符码>57))
    返回false;
    否则{
    var len=$('#rate').val().length;
    var指数=$('#rate').val().indexOf('.');
    如果(索引>0&&charCode==46){
    返回false;
    }
    如果(索引>0){
    var CharAfterdot=(len+1)-指数;
    如果(字符点>3){
    返回false;
    }
    }
    }
    返回true;
    }

    在您的
    文本框中添加一个类
    ,在此处和下方说
    数字
    ,代码将为您完成此操作:

    $('.number').on('keypress',function (event) {
        if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
            event.preventDefault();
        }
        var text = $(this).val();
        if ((text.indexOf('.') != -1) && (text.substring(text.indexOf('.')).length > 2)) {
            event.preventDefault();
        }
    });
    
    $('.number')。打开('keypress',函数(事件){
    if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
    event.preventDefault();
    }
    var text=$(this.val();
    if((text.indexOf('.')!=-1)和&(text.substring(text.indexOf('.')).length>2)){
    event.preventDefault();
    }
    });
    
    注意:您的代码不允许在文本框中输入


    我找到了解决办法。在这里为任何与我有相同需求的人添加代码

    /*
    *函数允许在文本框中输入十进制数
    *-允许整数、退格和删除
    *-不允许使用字母表
    *-仅允许一个小数点
    *-仅允许小数点后两位数字
    */
    函数isNumberKey(evt,元素){
    var charCode=(evt.which)?evt.which:window.event.keyCode;
    如果(charCode>31&&(charCode<48 | | charCode>57)&&!(charCode==46 | | charCode==8))
    返回false;
    否则{
    var len=$(元素).val().length;
    var index=$(element.val().indexOf('.');
    如果(索引>0&&charCode==46){
    返回false;
    }
    如果(索引>0){
    var CharAfterdot=(len+1)-指数;
    如果(字符点>3){
    返回false;
    }
    }
    }
    返回true;
    }
    
    
    我想使我的代码动态化,这样就可以在任何html元素上使用它。不想硬编码任何属性值。这适用于所有具有class
    number
    input
    元素!通过动态,您在这里如何描述它?