JavaScript限制输入框只允许输入数字和符号,小数点

  JavaScript限制输入框只允许输入数字和符号,小数点,不允许输入其他内容,并且输入符号后不能在前面输入数字,小数点同理。

<title>JavaScript限制输入框只允许输入数字和符号,小数点</title>
<input type="text" onkeydown="return checkKeyCode(event,this)" style="ime-mode: disabled;" />
<script>
    function getCursorPosition(el) {//获取光标位置
        if (el.selectionStart) {//IE9-或者标准浏览器
            return el.selectionStart;
        } else if (document.selection) {//IE8-或者支持selection对象的浏览器
            el.focus();
            var r = document.selection.createRange();
            if (r == null) {
                return 0;
            }
            var re = el.createTextRange(), rc = re.duplicate();
            re.moveToBookmark(r.getBookmark());
            rc.setEndPoint('EndToStart', re);
            return rc.text.length;
        }
        return 0;
    }
    function checkKeyCode(e, o) {
        var kc = e.keyCode;
        var cursorPosition = getCursorPosition(o);
        if (kc == 8 || kc == 36 || kc == 46 || kc == 37 || kc == 39) return true;//删除,home,delete,左右移动键
        if (kc == 109 || kc == 173) return cursorPosition == 0 && o.value.indexOf('-') == -1;//大小键盘上的减号,只有第一个可以输入并且未输入过
        if (kc == 110 || kc == 190) return o.value.indexOf('.') == -1 && o.value != ''//大小键盘上的小数点
            && cursorPosition != 0 && ((cursorPosition == 1 && o.value.charAt(0) != '-') || (cursorPosition > 1));
        return (kc >= 96 && kc <= 105) || (kc >= 48 && kc <= 57) &&//数字
            ((cursorPosition > 0) ||//不在第一位
            (cursorPosition == 0 && o.value.indexOf('-') == -1)//在第一位的时候不能输入-号
            );
    }
</script>

 


原创文章,转载请注明出处:JavaScript限制输入框只允许输入数字和符号,小数点

评论(0)Web开发网
阅读(224)喜欢(0)不喜欢(0)JavaScript/Ajax