自定义vtype验证

做项目时经常需要验证某个字段的唯一性,这里自己写了个vtype,来验证用户名是否唯一。

JAVA 端代码略.

 

form 部分代码:

{ name : "username", fieldLabel : "用户名", xtype : "textfield", vtype : 'userrange', minLength:6, maxLength:32, listeners: { 'blur':function(f){ //console.debug(f); } }, readOnly:this.lock, allowBlank : this.lock, blankText : "用户登陆的标识,不能为空,并且是整个站点中唯一!" }

 

vtype代码:

Ext.apply(Ext.form.VTypes, { //用户名唯一性验证 userrange : function(val, field) { if(!val){ //return false; }else{ Ext.Ajax.request({ url : "../../isUserExist.action", params:{ username:String.escape(val) }, success:function(response, opts) { var obj = Ext.decode(response.responseText); //console.dir(obj); //console.warn("------",obj.result); if(obj.result!=null){ return false; }else{ return true; } }, failure:function(_r,_p){ Ext.Msg.alert("错误",_r/*.toSource()*/); } }); } }, userrangeText : "用户名已经存在!" });

 

不缺点:

1.验证的触发事件需要改正,当前是每输入一次就会对服务器查询一次。这样搞法要死人的。

2.如果是修改数据时,当页面read完,就会报用户名已经存在的错误。

    这是不应该的,我还没改呢。

 

 

 

你可能感兴趣的:(java,function,服务器,null,url)