首页 > 语言 > JavaScript > 正文

推荐一个自己用的封装好的javascript插件

2024-05-06 16:15:30
字体:
来源:转载
供稿:网友

本文推荐给大家一款自用的封装好的javascript插件,常用的一些检测全部都涵盖了,非常实用,推荐给小伙伴们。

具体内容请看注释,这里就不多BB了,

奉上代码:

 

 
  1. /// <reference path="vendor/jquery-1.4.1-vsdoc.js" /> 
  2. ///检测表单中的不能为空(.notnull)的验证 
  3. /* 
  4. 时间:2012-6-6 
  5. 作用:一对form标签下有多个(包括一个)表单需要提交时,使用js准确的判断当前按钮对那些元素做判断 
  6. 用法:在form标签下 找到当前 表单的容器 给予class="form",当前表单的提交按钮给予 class="check" 
  7. 需要验证为空的元素给予class="notnull" nullmsg="xx不能为空!"提示,需要进行逻辑判断的表单给予class="need" 
  8. 判断的类型给予 class="num"(只能是数字) 验证的提示 logicmsg="XX只能是数字" 
  9. 给予class="errorMessage"显示错误信息块 
  10. 给予class="warn"显示错误信息 
  11. 未使用js面向对象编程 
  12. 逻辑判断,不传入need标识,直接给出正则表达式属性(自定义)regex="/^/d$/" 做出判断 
  13. 在外部实现 
  14. Global.submitCallback button回调函数 
  15. Global.confirmCallback confirm回调函数; 
  16. 需要改进的地方: 
  17. 暂无 
  18. 更新时间:2014年12月3日 16:23:22 
  19. 作者:Amber.Xu 
  20. */ 
  21. //$(document).ready( 
  22. // function () { 
  23. // $("form").find(".notnull").bind({ 
  24. // focus: function () { 
  25. // if ($(this).attr("value") == this.defaultValue) { 
  26. // $(this).attr("value", ""); 
  27. // } 
  28. // }, 
  29. // blur: function () { 
  30. // if ($(this).attr("value") == "") { 
  31. // $(this).attr("value", this.defaultValue); 
  32. // } 
  33. // } 
  34. // }); 
  35. // } 
  36. //); 
  37. ///*封装一个万能检测表单的方法*/ 
  38. ///event.srcElement:引发事件的目标对象,常用于onclick事件。 
  39. ///event.fromElement:引发事件的对象源,常用于onmouseout和onmouseover事件。 
  40. ///event.toElement:引发事件后,鼠标移动到的目标源,常用于onmouseout和onmouseover事件。 
  41. function Global() { 
  42. var _self = this
  43. Global.submitCallback = null
  44. Global.confirmCallback = null
  45. $(document).ready(function () { 
  46. //form body 
  47. $("body").find(".form").each(function () { 
  48. this.onclick = function (e) { 
  49. var button = null
  50. try { 
  51. button = e.srcElement == null ? document.activeElement : e.srcElement; 
  52. catch (e) { 
  53. console.log(e.message) 
  54. button = document.activeElement; 
  55. if ($(button).is(".check")) { 
  56. //alert("提交") 
  57. var sub = (checkform(this) && CheckInputRex(this) && checkselect(this) && checkChecked(this)); 
  58. if (sub) { 
  59. // Call our callback, but using our own instance as the context 
  60. Global.submitCallback.call(this, [e]); 
  61. return sub; 
  62. else if ($(button).is(".confirm")) { 
  63. //alert("删除") 
  64. var sub = confirm($(button).attr("title")); 
  65. if (sub) { 
  66. Global.confirmCallback.call(this, [e]); 
  67. return sub; 
  68. else { 
  69. // //alert("其它") 
  70. return true
  71. }); 
  72. /*检测表单中不能为空的元素*/ 
  73. function checkform(form) { 
  74. var b = true
  75. $(form).find(".notnull").each(function () { 
  76. if ($.trim($(this).val()).length <= 0) {//|| $(this).val() == this.defaultValue 
  77. // if (this.value != null) { 
  78. // $(this).attr("value", ""); 
  79. // } 
  80. //alert($(this).attr("msg")) 
  81. $(this).parents(".form").find(".warn").text($(this).attr("nullmsg")); 
  82. $(this).parents(".form").find(".errorMessage").show(); 
  83. $(this).select(); 
  84. $(this).focus(); 
  85. return b = false
  86. }); 
  87. if (b == true) { 
  88. $(form).find(".warn").text(""); 
  89. $(form).find(".errorMessage").hide(); 
  90. return b; 
  91. /*检测表单中必选的下拉列表*/ 
  92. function checkselect(form) { 
  93. var b = true
  94. $(form).find(".select").each(function (i) { 
  95. var ck = $(this).find('option:selected').text(); 
  96. if (ck.indexOf("选择") > -1) { 
  97. $(this).parents(".form").find(".warn").text($(this).attr("nullmsg")); 
  98. $(this).parents(".form").find(".errorMessage").show(); 
  99. $(this).select(); 
  100. $(this).focus(); 
  101. return b = false
  102. }); 
  103. return b; 
  104. /*检测表单中必选的复选框*/ 
  105. function checkChecked(form) { 
  106. var b = true
  107. $(form).find(".checkbox").each(function (i) { 
  108. var ck = $(this)[0].checked; 
  109. if (!ck) { 
  110. $(this).parents(".form").find(".warn").text($(this).attr("nullmsg")); 
  111. $(this).parents(".form").find(".errorMessage").show(); 
  112. $(this).select(); 
  113. $(this).focus(); 
  114. return b = false
  115. }); 
  116. return b; 
  117. //检查是否匹配该正则表达式 
  118. function GetFlase(value, reg, ele) { 
  119. if (reg.test(value)) { 
  120. return true
  121. $(ele).parents(".form").find(".warn").text($(ele).attr("logicmsg")); 
  122. $(ele).parents(".form").find(".errorMessage").show(); 
  123. $(ele).focus(); 
  124. $(ele).select(); 
  125. return false//不能提交 
  126. function CheckInputRex(form) { 
  127. var b = true
  128. $(form).find("input[type='text']").each(function () { 
  129. if (typeof ($(this).attr("regex")) == 'string') { 
  130. if ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) { 
  131. //当前表单的值 
  132. var value = $(this).attr("value") || $(this).val(); 
  133. var regx = eval($(this).attr("regex")); 
  134. return b = GetFlase(value, regx, this); 
  135. }); 
  136. return b; 
  137. ///检查用户输入的相应的字符是否合法 
  138. ///此方法已废弃 
  139. function CheckInput(form) { 
  140. var b = true
  141. $(form).find(".need").each(function () { 
  142. if ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) { 
  143. //当前表单的值 
  144. var value = $(this).attr("value"); 
  145. //id的值或者name的属性的值如:[name="contact"] 
  146. var name = $(this).attr("class"); 
  147. //检查需要输入的内容是否合法如:联系方式 
  148. var len = name.split(" "); 
  149. for (var i = 0; i < len.length; i++) { 
  150. switch ($.trim(len[i])) { 
  151. ///联系方式  
  152. case "mobile"
  153. var reg = /^1/d{10}$/; 
  154. return b = GetFlase(value, reg, this); 
  155. break
  156. ///邮箱  
  157. case "email"
  158. var reg = /^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$/; 
  159. return b = GetFlase(value, reg, this); 
  160. break
  161. ///两次密码是否一致  
  162. case "password"
  163. break
  164. case "password2"
  165. if ($("#password").attr("value") != $("#password2").attr("value")) { 
  166. $(this).select(); //获取焦点 
  167. $(this).parents(".form").find(".warn").text($(this).attr("logicmsg")); 
  168. $(this).parents(".form").find(".errorMessage").show(); 
  169. return b = false//不能提交 
  170. break
  171. case "worktel"
  172. case "hometel"//家庭电话 
  173. var reg = /^/d{8}$/; 
  174. return b = GetFlase(value, reg, this); 
  175. break
  176. case "post"//邮编 
  177. var reg = /^/d{6}$/; 
  178. return b = GetFlase(value, reg, this); 
  179. break
  180. case "bonus"
  181. case "allowance"
  182. case "FixedSalary"
  183. var reg = /^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0|[1-9]/d)$/; 
  184. return b = GetFlase(value, reg, this); 
  185. break
  186. case "identity"
  187. var reg = /(^/d{15}$)|(^/d{18}$)|(^/d{17}(/d|X|x)$)/; 
  188. return b = GetFlase(value, reg, this); 
  189. break
  190. case "height"
  191. var reg = /^[1-2][0-9][0-9]$/; 
  192. return b = GetFlase(value, reg, this); 
  193. break
  194. case "qq"
  195. var reg = /^[1-9][0-9]{4,}$/; 
  196. return b = GetFlase(value, reg, this); 
  197. break
  198. case "begintime"
  199. case "endtime"
  200. var reg = /^/d{4}$/; 
  201. if (reg.test(value) && (parseInt($(".endtime").val()) > parseInt($(".begintime").val()))) { 
  202. return b; 
  203. $.ligerDialog.alert($(this).attr("msg")) 
  204. $(this).select(); //获取焦点 
  205. return b = false//不能提交 
  206. break
  207. case "num"
  208. var reg = /^/d+$/; 
  209. return b = GetFlase(value, reg, this); 
  210. break
  211. ///大陆去香港需要办理往来港澳通行证和香港的签注.因私普通护照号码格式有:  
  212. ///14/15+7位数,G+8位数;  
  213. ///因公普通的是:P.+7位数;  
  214. ///公务的是:S.+7位数 或者  
  215. //S+8位数,以D开头的是外交护照  
  216. case "postport"//护照号码 
  217. var reg = /^(P/d{7}|G/d{8}|S/d{7,8}|D/d+|1[4,5]/d{7})$/; 
  218. return b = GetFlase(value, reg, this); 
  219. break
  220. case "bankaccount"
  221. var reg = /^[0-9]{19}$/; 
  222. return b = GetFlase(value, reg, this); 
  223. break
  224. //switch 
  225. //for 
  226. }); 
  227. return b; 
  228. ///此方法已经废弃 
  229. }); 
  230. ///单击改变背景颜色 
  231. $(document).ready(function () { 
  232. var inputs = $("#top>.c>input"); 
  233. $(inputs).each(function () { 
  234. this.onclick = function () { 
  235. document.getElementById("main").style.backgroundColor = this.name; 
  236. //$("#main").backgroundColor = this.name; 
  237. }); 
  238. }); 

基本上常用的功能都封装在内了,希望小伙伴们能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选