jQuery - 只允许两个十进制值

时间:2015-05-12 10:14:41

标签: jquery

代码:

<input onkeypress="return isNumberKey(event)" type="number" value="" />

function isNumberKey(evt){
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46){   
        return false;
    }   
    return true;
}

上述功能允许用户输入超过两位小数的值,即10.5678。如何修改该功能并限制用户输入最多两位小数的值,即10.56

1 个答案:

答案 0 :(得分:4)

尝试以下代码 将类号赋给元素

$('.number').on('keypress',function (event) {
    if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
        event.preventDefault();
    }
    var input = $(this).val();
    if ((input.indexOf('.') != -1) && (input.substring(input.indexOf('.')).length > 2)) {
        event.preventDefault();
    }
});

和javascript

function isNumberKey(evt){
  
console.log(evt.value);
  if ((evt.which != 46 || evt.value.indexOf('.') != -1) && (evt.which < 48 || evt.which > 57)) {
        //event it's fine

    }
    var input = evt.value;
    if ((input.indexOf('.') != -1) && (input.substring(input.indexOf('.')).length > 2)) {
        return false;
    }
}
<input onkeypress="return isNumberKey(this)" type="number" value="" />