ExtJS ComboBox验证返回意外结果
ExtJS ComboBox validation returns unexpected result
我刚刚在编写ExtJS脚本,我有一个ComboBox,它有
allowBlank = false
和
forceSelection = true
我在列表中有一个项目,它作为默认消息,具有显示文本
Please select...
无值
''
当我在组合框上运行validate时,我得到true不知道为什么?根据时的文件
allowBlank = false
验证被强制检查值。长度>0所以我在JS控制台中做了自己的测试
>> if (thisForm.controlManager.controlArray[2].allowBlanks) { if (thisForm.controlManager.controlArray[2].length >= 0) { true; } false; } else { if (thisForm.controlManager.controlArray[2].length > 0) { true; } false; }
并且返回false所以我认为这可能是验证方法中的一个错误,所以我尝试做这个
>> thisForm.controlManager.controlArray[2].validateValue('')
并因此得到true
任何人都知道我可能做错了什么,或者是否需要设置其他任何东西来让这个validate在值为"时返回false。
PS。我也试过这个
>> thisForm.controlManager.controlArray[2].validateValue(' ')
并得到了正确的结果,即false。这让我非常困惑,因为我通常希望"answers"在验证中返回相同的值。
我知道一个变通方法是将我的值设置为",但我宁愿使用"。
感谢
我碰巧最终也遇到了同样的问题,经过一番寻找,终于找到了一个不需要覆盖Extjs标准功能的解决方案。
基本上,Ext.form.field.Text的子代有一个"validator"配置选项,允许程序员为组件指定自定义验证函数(请参阅此处)。
基本上,验证器函数在getErrors()开始时被调用,并在字段的其余标准验证之前进行评估。验证器函数接受一个参数(值),如果值有效,则必须返回true,否则必须返回错误消息字符串。
以下配置最终适用于我的案例:
validator: function (value) {
return (value === '/*Your emptytext text*/') ? "blankText" : true;
}
您必须使用emptyText配置Ext有以下验证字段代码:
validate : function(){
if(this.disabled || this.validateValue(this.processValue(this.getRawValue()))){
this.clearInvalid();
return true;
}
return false;
}
getRawValue的定义如下:
getRawValue : function(){
var v = this.rendered ? this.el.getValue() : Ext.value(this.value, '');
if(v === this.emptyText){
v = '';
}
return v;
}
因此,如果该值等于空文本,则返回的值为"
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- Javascript:函数返回意外结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 按位或意外结果
- 来自 JavaScript 循环的意外结果
- 从 JavaScript 中的图像中读取像素数据会返回半透明像素的意外结果
- 在 JS 中短路空数组会产生意外结果:“[] ||真 == []'
- NodeJS中的Parse Json文件在Node中显示意外结果
- 基于给出意外结果的提示输入的逻辑
- JavaScript Regexp.test返回意外结果
- 键控产生意外结果.HTML5游戏
- Javascript do/while循环显示意外结果
- 来自 CSS 和 jQuery 的意外结果
- MongoDB mapReduce方法意外结果
- 具有意外结果的 Javascript 函数参数
- 在 JavaScript 中解析日期字符串的意外结果
- 从内部HTML更改为表单时获得意外结果,输入类型文本字段
- 在计算链逻辑表达式 JavaScript 时出现意外结果
- 意外结果 - 谷歌自动完成针对约克郡
- JavaScript unshift 参数返回意外结果