123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- $.define(["jQuery", "util"], "validate", function($, util) {
- var returnTrue = function() {
- return true;
- },
- returnFalse = function() {
- return false;
- },
- vDef = function(ps, name) {
- return function(obj) {
- return "invalid validate[" + name + "] option";
- }
- },
- vRequired = function(msg) {
- return function(obj) {
- var v = obj.get();
- if((undefined === v) || ("" === v) || ($.isArray(v) && v.length === 0)) {
- return msg || "必输字段";
- }
- };
- },
- vMax = function(ps) {
- var tn = $.type(ps),
- msg = "不能大于";
- if(tn === "object") {
- msg = ps.msg || (msg + ps.val);
- ps = ps.val;
- tn = $.type(ps);
- } else {
- msg = msg + ps;
- }
- if(tn === "number") {
- return function(obj) {
- var val = obj.get();
- if(val) {
- if($.iaArray(val)) {
- if(val.length > ps) {
- return msg;
- }
- } else {
- if(val > ps) {
- return msg;
- }
- }
- } else if(0 === val) {
- if(0 > ps) {
- return msg;
- }
- }
- return true;
- };
- } else if(tn === "string") {
- var val = obj.get();
- if(val) {
- if(val > ps) {
- return msg;
- }
- }
- }
- },
- vMin = function(ps) {
- var tn = $.type(ps),
- msg = "不能小于";
- if(tn === "object") {
- msg = ps.msg || (msg + ps.val);
- ps = ps.val;
- tn = $.type(ps);
- } else {
- msg = msg + ps;
- }
- if(tn === "number") {
- return function(obj) {
- var val = obj.get();
- if(val) {
- if($.iaArray(val)) {
- if(val.length < ps) {
- return msg;
- }
- } else {
- if(val < ps) {
- return msg;
- }
- }
- } else if(0 === val) {
- if(0 > ps) {
- return msg;
- }
- }
- return true;
- };
- } else if(tn === "string") {
- var val = obj.get();
- if(val) {
- if(val < ps) {
- return msg;
- }
- }
- }
- },
- vLen = function(ps) {
- var msg = "长度不等于";
- if($.type(ps) === "object") {
- msg = ps.msg || (msg + ps.val);
- ps = ps.val;
- } else {
- msg = msg + ps;
- }
- return function(obj) {
- var val = obj.get();
- if(val || (val === "")) {
- if(val.length !== ps) {
- return msg;
- }
- }
- };
- },
- vMinLen = function(ps) {
- var msg = "长度小于";
- if($.type(ps) === "object") {
- msg = ps.msg || (msg + ps.val);
- ps = ps.val;
- } else {
- msg = msg + ps;
- }
- return function(obj) {
- var val = obj.get();
- if(val || (val === "")) {
- if(val.length < ps) {
- return msg;
- }
- }
- };
- },
- vMaxLen = function(ps) {
- var msg = "长度大于";
- if($.type(ps) === "object") {
- msg = ps.msg || (msg + ps.val);
- ps = ps.val;
- } else {
- msg = msg + ps;
- }
- return function(obj) {
- var val = obj.get();
- if(val || (val === "")) {
- if(val.length > ps) {
- return msg;
- }
- }
- };
- },
- impls = {
- "_def": vDef,
- "required": vRequired,
- "max": vMax,
- "min": vMin,
- "len": vLen,
- "minLen": vMinLen,
- "maxLen": vMaxLen
- },
- reg = function(name, hand) {
- impls[name] = hand;
- },
- parseRules = function(obj) {
- var ret = [];
- for(key in obj) {
- var impl = impls[key] || impls["_def"];
- ret.push(impl(obj[key], key));
- }
- return ret;
- },
- configForm = function(form, options) {
- for(var key in options) {
- var item = form.item(key),
- option = options[key];
- if(item && option) {
- item.addRules(parseRules(option));
- }
- }
- };
- return {
- register: reg,
- form: configForm,
- };
- });
|