dwz.validate.method.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * @requires jquery.validate.js
  3. * @author ZhangHuihua@msn.com
  4. */
  5. (function($){
  6. if ($.validator) {
  7. $.validator.addMethod("alphanumeric", function(value, element) {
  8. return this.optional(element) || /^\w+$/i.test(value);
  9. }, "Letters, numbers or underscores only please");
  10. $.validator.addMethod("lettersonly", function(value, element) {
  11. return this.optional(element) || /^[a-z]+$/i.test(value);
  12. }, "Letters only please");
  13. $.validator.addMethod("phone", function(value, element) {
  14. return this.optional(element) || /^[0-9 \(\)]{7,30}$/.test(value);
  15. }, "Please specify a valid phone number");
  16. $.validator.addMethod("postcode", function(value, element) {
  17. return this.optional(element) || /^[0-9 A-Za-z]{5,20}$/.test(value);
  18. }, "Please specify a valid postcode");
  19. $.validator.addMethod("date", function(value, element) {
  20. value = value.replace(/\s+/g, "");
  21. if (String.prototype.parseDate){
  22. var $input = $(element);
  23. var pattern = $input.attr('dateFmt') || 'yyyy-MM-dd';
  24. return !$input.val() || $input.val().parseDate(pattern);
  25. } else {
  26. return this.optional(element) || value.match(/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/);
  27. }
  28. }, "Please enter a valid date.");
  29. /*自定义js函数验证
  30. * <input type="text" name="xxx" customvalid="xxxFn(element)" title="xxx" />
  31. */
  32. $.validator.addMethod("customvalid", function(value, element, params) {
  33. try{
  34. return eval('(' + params + ')');
  35. }catch(e){
  36. return false;
  37. }
  38. }, "Please fix this field.");
  39. $.validator.addClassRules({
  40. date: {date: true},
  41. alphanumeric: { alphanumeric: true },
  42. lettersonly: { lettersonly: true },
  43. phone: { phone: true },
  44. postcode: {postcode: true}
  45. });
  46. $.validator.setDefaults({errorElement:"span"});
  47. $.validator.autoCreateRanges = true;
  48. }
  49. })(jQuery);