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);