我想要一个用于文本字段的远程验证器。我的 PHP 返回 true/false 值。我尝试过这样的事情:
{
xtype: 'textfield',
fieldLabel: 'Field',
allowBlank: false,
validator : function(value) {
Ext.Ajax.request({
url: 'psc/validate',
params: { psc: value },
success: function(response){
return response.responseText
}
});
});
}
问题是 ajax 请求是异步的,并且验证器给出“值未定义”错误。有回调吗?所以我会默认返回 false 并在 ajax 调用完成后使文本字段有效。
我尝试在 google 上搜索 extjs 远程验证,但没有太多相关内容。
有人帮助或建议吗?谢谢。
也许您不应该使用验证器,为文本字段添加一个更改监听器,并使用标记无效和清除无效的方法来显示验证。
{
xtype: 'textfield',
fieldLabel: 'Field',
allowBlank: false,
textValid: false,
validator: function(){
return this.textValid;
},
listeners : {
'change': function(textfield,newValue,oldValue) {
Ext.Ajax.request({
url: 'psc/validate',
params: { psc: value },
scope: textfield,
success: function(response){
if (response.responseText){
this.clearInvalid();
this.textValid = true;
} else {
this.markInvalid('field is not valid');
this.textValid = false;
}
}
});
}
}
}
我还没有尝试过,但可能适合你的方法
EDIT我对代码进行了一些修改以包含验证器..
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)