限制用户只输入十进制后的两位数

时间:2015-07-20 10:14:05

标签: javascript

我希望用户限制用户只能在十进制后输入两位数。 但他们也可以使用空格键删除输入的数字。我有以下代码,但它不允许我使用空格删除输入的数字像:

假设我已输入:5454645.54,如果用户将文本框上的cursoe移动并想删除这些数字,则不允许用户这样做。请在下面的代码中建议需要做哪些更正:

function restrictUser(el, evt) {  
    var charCode = (evt.which) ? evt.which : event.keyCode;
    var number = el.value.split('.');
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))     {
        return false;
    }

    if(number.length>1 && charCode == 46){
         return false;
    }
    var caratPos = getSelectionStart(el);
    var dotPos = el.value.indexOf(".");
    if( caratPos > dotPos && dotPos>-1 && (number[1].length > 1)){
        return false;
    }
     return true;
}
function getSelectionStart(o) {
    if (o.createTextRange) {
        var r = document.selection.createRange().duplicate()
        r.moveEnd('character', o.value.length)
        if (r.text == '') return o.value.length
        return o.value.lastIndexOf(r.text)
    } else return o.selectionStart
}

谢谢你。

0 个答案:

没有答案