我有textfield
必须根据用户输入进行验证。通过验证我的意思是,我需要检查数据库中是否存在该名称,如果存在,则显示相应的错误消息。
我是如何做到这一点的,我有一个change listener
用于text box
,在听众中我有ajax request
连接到java action
并检查是否有名字已存在于db中,并发送回response
。在ajax success
上,我正在尝试set error message
...但错误消息未设置..
{
fieldLabel : 'Company Name:',
xtype : 'textfield',
required: true,
allowBlank : false,
name : 'companyName',
msgTarget: 'side',
listeners : {
change : function(th,n,o) {
console.log("change-EV");
/*****ajax request here****/
this.markInvalid('N.V..!');
// this.setActiveError('NV..',false);
},
blur: function(th){
console.log("Blur-ev");
}
}
}
我使用的方法是对的吗?我能用ajax请求实现这个目标吗?
答案 0 :(得分:2)
如果您正在使用textfield的更改事件,那么每次输入的字母都会被触发
如果你使用模糊,那么移动到其他元素时会被触发 根据我对你的问题的理解你应该使用模糊事件
因为模糊触发了ajax调用以进行检查,如果存在国家名称则从服务器端抛出异常,它将无法通过ajax调用
所以你可以在ajax失败回调中显示错误信息
答案 1 :(得分:0)
我想您正在尝试为每个输入的字母调用Ajax, 是对的吗 ?因为这可能是服务器上的大量开销。我们可以使用组合框与绑定到组合框的商店中的名称列表,然后根据前面的类型进行过滤,只需使用store.filterBy()过滤商店中的值。