/*
组合模式
*/
/* 保存对象 */
var SaveObj = {};
/* 统一验证对象 */
var Check = {
IsNull: function() {
if (this.GetVal().length > 0) {
return this.GetVal();
}
return false;
},
IsNaN: function() {
if (!isNaN(this.GetVal())) {
return this.GetVal();
}
return false;
}
}
/* 叶对象超类
这个超类是为了确保所有的叶对象
*/
var BackLeaf = function() { }
BackLeaf.prototype.Test = function() {
throw Error("叶对象基类无法直接调用")
};
BackLeaf.prototype.GetVal = function() {
throw Error("叶对象基类无法直接调用")
};
/* 文本框叶对象 */
var TextLeaf = function(obj, checkType) {
this._obj = $(obj);
this.checkType = checkType;
return this;
};
/* 继承叶对象超类 */
TextLeaf.prototype = new BackLeaf();
TextLeaf.prototype.Test = function() {
return Check[this.checkType].call(this);
}
TextLeaf.prototype.GetVal = function() {
return this._obj.val();
}
/* 组合对象 */
var Combination = function() {
this.Count = [];
this.i = 0;
}
Combination.prototype.Add = function(obj) {
this.Count.push(obj);
this.i = this.Count.length
}
Combination.prototype.Test = function() {
var ret = [];
for (var i = 0; i < this.i; i++) {
var _t = this.Count[i].Test()
if (_t !== false) {
ret.push(_t);
}
}
return ret;
}
Combination.prototype.length = function() {
return this.Count.length;
}
//var c = new Combination();
//c.Add(new TextLeaf("#aa", "IsNull"));
//c.Add(new TextLeaf("#bb", "IsNull"));
//c.Add(new TextLeaf("#cc", "IsNaN"));
//alert(c.Test().length === c.length());
//利用组合模式编写验证功能基本完成,但是还不够好
/***************************************************************/
明天再阅读一遍