0

我使用 keydown 和 keypress,此代码仅适用于 chrome,但不适用于 Firefox。第一个功能是用户只能使用数字、小键盘、退格和制表符。另一个功能是,当用户输入数字时,它会自动更改为十进制

默认值 --> 0.00

输入 1 --> 0.01

输入 0 --> 0.10

输入 0 --> 1.00

你可以在这里找到我的演示

$('#txtInput').keydown(function(event) {

var Key = event.which;
//number
if (Key >= 48 && Key <= 57) {
    return true;
}
//numpad
else if (Key >= 96 && Key <= 105) {
    return true;
}
//backspace,tab
else if (Key >= 8 && Key <= 9) {
    return true;
}
else return false;
});



$(document).ready(function(){
$('#txtInput').keypress(function(e){
    var value = $('#txtInput').val().toString();
    var number = null;
    if(value == '')
        value = '0.00';
    switch(e.which)
    {
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
            number = e.which - 48;
            break;
        default:
            e.preventDefault();
            break;
    }
    var dotIndex = value.indexOf('.');
    if(number === null)
    {
        value = value.substr(0,dotIndex-1) + '.' + value.substr(dotIndex -1,1) + value.substr(dotIndex+1,1);
        if(value.indexOf('.') ==0)
        {
            value = '0' + value;
        }
    }
    else
    {

        value = value.substr(0,dotIndex) + value.substr(dotIndex+1,1) + '.' + value.substr(dotIndex+2);

        value += number.toString();  
        value = value.replace(/^0+/,'');
        if(value.indexOf('.') == 0)
        {
            value = '0' + value;
        }               

    }
    $('#txtInput').val(value);
    e.preventDefault();
}).keypress(function(e){

    switch(e.which)
    {
        case 48:
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54:
        case 55:
        case 56:
        case 57:
            e.preventDefault();
            break;
        }
    });
});
4

0 回答 0