easyui-validatebox-extend.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. /**
  2. * <pre>
  3. *
  4. * 自定义validatebox扩展验证
  5. *
  6. * easyui 支持的validatebox验证方法:
  7. * email: 正则匹配电子邮件。
  8. * url: 正则匹配url。 length[0,100]:验证长度范围。
  9. * remote['http://.../action.do','paramName']: 发送ajax请求来验证,验证有效时返回true。
  10. *
  11. * 自从1.3.2版本开始,validatebox自身已经支持多重校验了
  12. * input class=&quot;easyui-validatebox&quot; data-options=&quot;required:true,validType:['email','length[0,20]']&quot;&gt;
  13. * </pre>
  14. */
  15. $.extend($.fn.validatebox.defaults.rules, {
  16. // 字符串验证
  17. // 至少输入字符数
  18. minLength : {
  19. validator : function(value, param) {
  20. return value.length >= param[0];
  21. },
  22. message : '至少输入 {0} 个字符!'
  23. },
  24. // 最多输入字符数
  25. maxLength : {
  26. validator : function(value, param) {
  27. return value.length <= param[0];
  28. },
  29. message : '最多输入 {0} 个字符!'
  30. },
  31. minValue:{
  32. validator : function(value, param) {
  33. return Number(value)>=Number(param[0]);
  34. },
  35. message : '输入值必须大于或等于 {0}!'
  36. },
  37. maxValue:{
  38. validator : function(value, param) {
  39. return Number(value)<=Number(param[0]);
  40. },
  41. message : '输入值必须小于或等于 {0}!'
  42. },
  43. // 应输入字符数
  44. reqLength : {
  45. validator : function(value, param) {
  46. return value.length == param[0];
  47. },
  48. message : '必须输入 {0} 个字符!'
  49. },
  50. // 必须输入字符数
  51. requiredLength : {
  52. validator : function(value, param) {
  53. return value.length == param[0];
  54. },
  55. message : '应输入 {0} 个字符!'
  56. },
  57. // 数字和字母组合
  58. intAndChar : {
  59. validator : function(value, param) {
  60. var reg = /^[0-9a-zA-Z]+$/;
  61. return reg.test(value);
  62. },
  63. message : '应输入字母或数字的组合!'
  64. },
  65. // 数字和字母组合
  66. intAndUpperChar : {
  67. validator : function(value, param) {
  68. var reg = /^[0-9A-Z]+$/;
  69. return reg.test(value);
  70. },
  71. message : '应输入大写字母或数字的组合!'
  72. },
  73. // 一位大写字母
  74. anUpperChar : {
  75. validator : function(value, param) {
  76. var reg = /^[A-Z]{1,1}$/;
  77. return reg.test(value);
  78. },
  79. message : '必须是一位大写字母!'
  80. },
  81. // 只能最多两位小数
  82. twoDecimal : {
  83. validator : function(value, param) {
  84. var reg = /^[0-9]+(.[0-9]{1,2})?$/;
  85. return reg.test(value);
  86. },
  87. message : '最多保留两位小数!'
  88. },
  89. // 重复打印必须是数字,且必须小于100!
  90. maxHun : {
  91. validator : function(value, param) {
  92. var reg = /^[0-9]{1,2}$/;
  93. return reg.test(value);
  94. },
  95. message : '必须是数字,且必须小于100!'
  96. },
  97. // 重复打印必须是数字,且必须小于100!
  98. lenSixOrSevenNum : {
  99. validator : function(value, param) {
  100. var reg = /^[0-9]{6,7}$/;
  101. return reg.test(value);
  102. },
  103. message : '必须是6位数字或7位数字!'
  104. },
  105. // 最大值不能超过多少
  106. maxNum : {
  107. validator : function(value, param) {
  108. var reg = Number(value);
  109. return reg <= param[0];
  110. },
  111. message : '最大值不能超过: {0} !'
  112. },
  113. // 最大值不能超过多少
  114. numScop : {
  115. validator : function(value, param) {
  116. var reg = Number(value);
  117. return reg <= param[1] && reg >= param[0];
  118. },
  119. message : '录入的数字范围: {0} - {1} !'
  120. },
  121. // 最大值不能超过多少
  122. maxNumEval : {
  123. validator : function(value, param) {
  124. var v = eval("Number(maxTotal)");
  125. param[0] = v;
  126. return value <= v;
  127. },
  128. message : "录入的最大值超出范围: {0} !"
  129. },
  130. // 最大值不能超过多少,可以引入参数变量
  131. maxNumByValue : {
  132. validator : function(value, param) {
  133. var reg = Number(value) + Number(param[1]);
  134. return reg <= param[0];
  135. },
  136. message : '录入的最大值超出范围: {0} !'
  137. },
  138. // 必须是整数
  139. int : {
  140. validator : function(value, param) {
  141. var reg = /^[0-9]+$/;
  142. return reg.test(value);
  143. },
  144. message : '必须是正整数!'
  145. },
  146. // 国内邮编验证
  147. zipcode : {
  148. validator : function(value) {
  149. var reg = /^[1-9]\d{5}$/;
  150. return reg.test(value);
  151. },
  152. message : '邮编必须是非0开始的6位数字.'
  153. },
  154. // 特殊数字格式验证 A00-Z00或可以录入数字10-9990
  155. spNumSm : {
  156. validator : function(value) {
  157. var reg = /^(([A-Z]{1}[0]{2})|([0-9]{1,3}[0]{1}))$/;
  158. return reg.test(value);
  159. },
  160. message : '该输入项为必填项.可以录入数字10-9990或A00表示1万,B00表示1.1万,C00表示1.2万,依此类推.'
  161. },
  162. // 特殊数字格式验证 10-99990
  163. spNumLg : {
  164. validator : function(value) {
  165. var reg = /^[0-9]{1,5}[0]{1}$/;
  166. return reg.test(value);
  167. },
  168. message : '该输入项为必填项.可以录入数字10-999990之间10的倍数.'
  169. },
  170. //10的整数倍
  171. multiple : {
  172. validator : function(value,param) {
  173. var max = param[0];
  174. if(value>max*10){
  175. return false;
  176. }
  177. var reg = /^[0-9]{1,5}[0]{1}$/;
  178. return reg.test(value);
  179. },
  180. message : '该输入项为必填项.可以录入数字10-{0}0之间10的倍数.'
  181. },
  182. //"sumLess['#param',1000]"
  183. sumLess : {
  184. validator: function(value,param){
  185. if($(param[0]).val()==null || $(param[0]).val()==''){
  186. return true;
  187. }
  188. var v1=parseInt($(param[0]).val())+parseInt(value);
  189. param[2]=parseInt(param[1])-parseInt($(param[0]).val());
  190. return v1 <=parseInt(param[1]);
  191. },
  192. message: '数据输入必须小于 {2}'
  193. } ,
  194. oneDecimal: {
  195. validator : function(value, param) {
  196. var reg = /^[0-9]+(.[0-9]{1})?$/;
  197. return reg.test(value);
  198. },
  199. message : '最多保留1位小数!'
  200. },
  201. lenSevenNum : {
  202. validator : function(value, param) {
  203. return value.length<=7;
  204. },
  205. message : '必须小于7位的数字!'
  206. },
  207. //
  208. lessNum : {
  209. validator : function(value, param) {
  210. return parseInt(value)<=parseInt(param[0]);
  211. },
  212. message : '输入数据必须小于等于{0}!'
  213. },
  214. //
  215. between:{
  216. validator : function(value, param) {
  217. thisValue=Number(value);
  218. miniValue=Number(param[0]);
  219. maxiValue=Number(param[1]);
  220. return thisValue>miniValue && thisValue<maxiValue;
  221. },
  222. message : '输入数据必须大于{0},且小于{1}!'
  223. },
  224. //
  225. remoteValid:{
  226. validator : function(value, param) {
  227. var result=false;
  228. var validUrl=param[0];
  229. $.ajax({
  230. type: "POST",
  231. url: validUrl,
  232. async:false,
  233. data: $(param[1]).serializeObject(),
  234. success: function(msg){
  235. var obj = eval(msg);
  236. if(obj.code==1){
  237. result=true;
  238. }else{
  239. param[0]=obj.message;
  240. }
  241. },
  242. error: function(){
  243. }
  244. });
  245. return result;
  246. },
  247. message : '{0}'
  248. },
  249. // 必须是数字(包括所有自然数)
  250. number:{
  251. validator : function(value, param) {
  252. var reg = /^-?\d+(\.\d+)?$/;
  253. return reg.test(value);
  254. },
  255. message : '必须是数字!'
  256. },
  257. telephone:{
  258. validator : function(value, param) {
  259. var regExp = /(^1[3|4|5|7|8][0-9]{9}$)|(^0\d{2,4}-\d{7,8}(-\d{1,6})?$)/;
  260. return regExp.test(value);
  261. },
  262. message : '请正确输入电话号码!'
  263. }
  264. });