当前位置: 代码迷 >> ASP.NET >> Jquery 文本框 调用方法有关问题
  详细解决方案

Jquery 文本框 调用方法有关问题

热度:9552   发布时间:2013-02-26 00:00:00.0
Jquery 文本框 调用方法问题
HTML code
01.;(function($){     02.     $.fn.onlyAllowEnter = function(settings){  03.         options = $.extend({}, $.fn.onlyAllowEnter.defaults, settings);  04.         if(this.length == 0){  05.                debug('Selector invalid or missing!');  06.                return ;  07.           }else if(this.length > 1){  08.             return this.each(function() {  09.               $.fn.onlyAllowEnter.apply($(this), [settings]);  10.             });  11.          }  12.           13.         switch(options['type']){  14.             case 'num':  15.                 $(this).unbind('keydown').keydown(allowEnterNumber);  16.                break;  17.             case 'ch':               18.                $(this).unbind('keydown').keydown(allowEnterChar);  19.                break;  20.             case 'numch':  21.                $(this).unbind('keydown').keydown(allowEnterNumberOrChar);  22.                break;  23.             case 'zto':  24.                $(this).unbind('keydown').keydown(allowEnterNumberZero2One);  25.                break;  26.             case 'fnum':  27.                $(this).unbind('keydown').keydown(allowEnterFloat);  28.                break;  29.             default:  30.                return;  31.         }  32.           33.     };  34.      35.      36.     function debug(message){  37.         if(!window.console){  38.             window.console = {};  39.             window.console.log = function(){  40.                return;  41.             }  42.         }  43.         window.console.log(message + ' ');       44.     };  45.        46.     /** 47.      * 设置文本框输入限制的默认配置 48.      *  type: 文本框只能输入的类型,合法的值有: 49.      *          num: 只允许是数字,ch: 只能是字母,numch: 数字或字母,zto: 0-1值浮点数,fnum: 浮点数 50.      *  len: 允许输入的最大个数 51.      *  intLen: 当为浮点数时允许的整数的最大位数, 默认为:0 不限制,如果为zto是此属性无作用 52.      *  flatLen: 当为浮点数时允许的小数部分的最大位数。 53.      */  54.     $.fn.onlyAllowEnter.defaults = {  55.             'type': '',  56.             'len': 0,  57.             'intLen': 0,  58.             'flatLen': 0     59.     };  60.       61.      /** 62.       * 方法说明 63.       *      只允许某个文本框中输入0~1之间的数值。当用户输入数值时, 64.       *    会自动在输入的数值前面添加'0.'; 65.       * 参数说明: 66.       *     @param element input文本框对象 67.       * 使用方式: 68.       *     为指定的文本框绑定onKeyDown事件, 69.       */  70.     function allowEnterNumberZero2One(){  71.         var keyCode = event.keyCode;  72.         var _val = $(this).val();  73.         if(_val == '' || !(/^0\./).test(_val)){  74.            $(this).val('0.');  75.         }  76.         if(!onlyNumber(keyCode)){  77.            return false;  78.         }  79.        var len = options['flatLen'];  80.        _val = $(this).val().substring(2);  81.        debug(_val);  82.        if(len != undefined && len != 0 && _val.length >= len && isBackspace(keyCode)){  83.           return false;  84.        }         85.        return true;  86.     };  87.       88.     /**  89.      * 方法说明: 90.      *     判断输入的数值是否为数字、删除、退格、左移或右移键 91.      * 参数说明: 92.      *  @param keyCode 输入的键盘的键值 93.      */  94.     function onlyNumber(keyCode){  95.         if(isBackspace(keyCode) && (keyCode > 57 || keyCode < 48)){  96.             return false;  97.         }  98.         return true;  99.     };  100.       101.     function isBackspace(keyCode){   102.        return keyCode != 8 && keyCode != 46 && keyCode != 37 && keyCode != 39;  103.     }  104.       105.     /** 106.      * 方法说明: 107.      *   设置一个文本框中可以输入数值或浮点数。 108.      * 参数说明: 109.      *   @param element input文本框对象 110.      * 使用方式 111.      *   为指定的文本框绑定onKeyDown事件 112.      */  113.     function allowEnterFloat(){  114.        var keyCode = event.keyCode;  115.        var _val = $(this).val();  116.        if(keyCode == 190){  117.           if(_val == ''){  118.              $(this).val('0');  119.           }else if(_val.indexOf('.') != -1){  120.              return false;  121.           }  122.        }  123.        var ilen = options['intLen'];  124.        var flen = options['flatLen'];  125.        return  onlyNumber(keyCode) || keyCode == 190;  126.     };  127.        128.      /** 129.       * 方法说明: 130.       *   设置一个文本框中只能输入字母 131.       * 参数说明: 132.       *   @param {HTMLObject} element input元素对象 133.       *   @param {Number} len 文本框中允许输入的字母个数,如果为空则为不限制 134.       */       135.    function  allowEnterChar(){  136.        var keyCode = event.keyCode;  137.        if(isBackspace(keyCode) && (keyCode < 65 || keyCode > 90)){  138.           return false;  139.        }  140.          141.        var len = options['len'];  142.        var val = $(this).val();  143.        if(len != undefined  && len != 0 && (val.length >= len) && isBackspace(keyCode)){  144.           return false;  145.        }  146.        return true;  147.    };  148.      149.    /** 150.     * 方法说明: 151.     *    设置某个文本框中只能输入数字 152.     * 方法说明: 153.     *    @param {HTMLObject} element input元素对象 154.     *    @param {Number} len 允许输入的数字的个数,当没指定时为无限制  155.     */  156.    function allowEnterNumber(){  157.        var keyCode = event.keyCode;  158.         if(!onlyNumber(keyCode)){  159.            return false;  160.         }  161.         var _val = $(this).val();  162.         var len = options['len'];  163.         if(len != undefined && len != 0 && (_val.length >= len) && isBackspace(keyCode)){  164.             return false;  165.         }  166.         return true;  167.    };  168.      169.    /** 170.     * 方法说明: 171.     *    设置一个文本框只能输入数字或字母 172.     * 参数说明: 173.     *    @param {HTMLObject} element  input文本框对象 174.     *    @param {Number} len 允许输入的字母或字母的最大数量 175.     */  176.    function allowEnterNumberOrChar(){  177.        return allowEnterChar() || allowEnterNumber();  178.    }     179.})(jQuery);
  相关解决方案