• JS onkeydown控制HTML Input 只录入浮点数值


    <script type="text/javascript">

            //获取当前光标位置

            function getCursortPosition(ctrl) {

                var CaretPos = 0;   // IE Support

                if (document.selection) {

                    ctrl.focus();

                    var Sel = document.selection.createRange();

                    Sel.moveStart('character', -ctrl.value.length);

                    CaretPos = Sel.text.length;

                }

                    // Firefox support

                else if (ctrl.selectionStart || ctrl.selectionStart == '0')

                    CaretPos = ctrl.selectionStart;

                return (CaretPos);

            }

            //只录入浮点数

            function onlyNumbers(e) {

                var keynum

                var keychar

                var numcheck

                if (window.event) // IE

                {

                    keynum = e.keyCode

                }

                else if (e.which) // Netscape/Firefox/Opera

                {

                    keynum = e.which

                }

                //Backspace Left Right Delete Key 直接放过

                if (keynum == 8 || keynum == 37               

                    || keynum == 39 || keynum == 46)

                {

                    return true;

                }

                //减号

                var minusCharCode = 189;

                //点

                var pointCharCode = 190;

                var inputCtrl = document.getElementById("mc");

                var index = getCursortPosition(inputCtrl);

                var oriVal = inputCtrl.value;

                if (keynum == pointCharCode)

                {

                    return oriVal.indexOf(".") == -1;

                }

               

                if (keynum == minusCharCode)

                {

                    if (oriVal.indexOf("-") > -1)

                        return false;

                    return  index == 0

                }

               

                keychar = String.fromCharCode(keynum)           

                var newVal = oriVal.substr(0, index) + keychar + oriVal.substr(index, oriVal.length - index);           

                console.log(newVal)           

                var pattern = /^([-]){0,1}([0-9]){1,}([.]){0,1}([0-9]){0,}$/;

                return pattern.test(newVal);           

            }

        </script>

    调用方法:

    <div id="wrap">         数值:<input id="mc" onkeydown="return onlyNumbers(window.event)"/>

        </div>

  • 相关阅读:
    RabbitMQ实战(文摘)
    dex2jar 和 jd-gui 的安装与使用(转)
    asp.net core跨平台开发从入门到实战文摘
    hashCode() 和equals() 区别和作用(转)
    B+树和LSM比较(转)
    C#并发集合(转)
    文档docsify
    如何熟悉一个系统?(内含知识大图)
    新浪微博应对弹性扩容的架构演进
    iftop非交互式监控流量来源和去向
  • 原文地址:https://www.cnblogs.com/jason_chen/p/5113201.html
Copyright © 2020-2023  润新知