浏览 4001 次
锁定老帖子 主题:Ext的Field.isValid()函数
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-12
最后修改:2009-12-12
这是为什么呢? 官方的文档中对这个函数的描述是这样的: 引用 Returns whether or not the field value is currently valid by validating the processed value of the field. Note: disabled fields are ignored.
这个函数会调用已经定义的校验规则来验证输入框中的值,如果通过则返回true。而markInvalid()函数只是给输入框加上了invalid标志,并不影响校验结果,于是这种奇怪的现象就出现了。 当然,我们可以通过预设校验规则来做所有的验证,而不用markInvalid这个函数,这样可以避免发生这种情况。但是,如果你也像我一样,喜欢用markInvalid函数标示某个控件为invalid,并且期望之后调用isValid时返回false,那么,下面的这段代码就派上用场了。 Ext.override(Ext.form.Field, { isValid : function(preventMark){ if(this.disabled){ return true; } if(this.getEl().hasClass(this.invalidClass)){ return false; } var restore = this.preventMark; this.preventMark = preventMark === true; var v = this.validateValue(this.processValue(this.getRawValue())); this.preventMark = restore; return v; } }) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |