实现easyui numberbox 的功能

本文介绍了一个基于jQuery的数字输入框插件实现方法,该插件能够限制用户仅能输入数字和小数点,并提供了小数位数的精确控制、最小最大值限定等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(function (jQuery) {
    $(this).css("ime-mode", "disabled");
    jQuery.fn.spif_numberbox = function(paraments){
        $(this).css("ime-mode", "disabled");
        this.bind("keypress",function(e) {
            var code = (e.keyCode ? e.keyCode : e.which);
            if(typeof($.browser) != "undefined" && !$.browser.msie&&(e.keyCode==0x8))   // if firefox
            {     
                 return ;     
            }
            return code >= 48 && code<= 57 || event.keyCode==46;  // number or dot   
        });     
        this.bind("blur", function() {     
            if (this.value.lastIndexOf(".") == (this.value.length - 1)) {     
                this.value = this.value.substr(0, this.value.length - 1);     
            } else if (isNaN(this.value)) {     
                //this.value = "";     
            }
            var dotFriIdx = this.value.indexOf(".");
            var dotLastIdex = this.value.lastIndexOf(".");
            if(dotFriIdx != dotLastIdex){
                this.value = 0;
            }
            if(paraments.min != null && paraments.min != '' && this.value < paraments.min){
                this.value = paraments.min;
            }
            if(paraments.max != null && paraments.max != '' && this.value > paraments.max){
                this.value = paraments.max;
            }
            if(this.value.lastIndexOf(".") > 0){
                if(paraments.precision == null || paraments.precision == ''){
                    paraments.precision = 0;
                }
                this.value = Math.round(this.value * Math.pow(10, paraments.precision)) / Math.pow(10, paraments.precision); // si she wu ru
            }
            if(paraments.precision > 0){  // qiangzhi baoliu n wei xiaoshu
                var sVal = this.value.toString();
                var sDot = sVal.indexOf(".");
                if(sDot < 0){
                    sDot = sVal.length;
                    sVal += '.';
                }
                while(sVal.length <= sDot + paraments.precision){
                    sVal += '0';
                }
                this.value = sVal;
            }
        });
        this.bind("paste", function() {     
            var s = clipboardData.getData('text');     
            if (!/\D/.test(s));     
            value = s.replace(/^0*/, '');     
            return false;     
        });     
        this.bind("dragenter", function() {     
            return false;     
        });     
//        this.bind("keyup", function() {     
//        if (/(^0+)/.test(this.value)) {     
//            this.value = this.value.replace(/^0*/, '');     
//            }     
//        });
    }
})(jQuery);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值