Ext4 用户名form输入框异步判断是否重名
来源:互联网 发布:程序员屏幕设置 编辑:程序博客网 时间:2024/06/05 07:06
今天在做项目的时候找到遇到一个问题,做用户新增的时候,很多输入框都要判断输入的准确性,如邮箱等,一般的输入验证只要写一个前台验证的regex和regexText即可,但是用户名重名需要从后台返回数据。因为考虑到和所有输入框的验证所实现的效果的一致性,所以抛弃了自己写一个label来显示是否输入正确的方式。查api得知可以设置textfield的validator属性为自定义的方法即可,遂写了一个
usernameValidate:function(me){Ext.Ajax.request({url : *******.baseURL+ '/sysmng/security/userExsistCheck',method : 'POST',params : {username : me.getValue()},success : function(form, action) {var result = Ext.JSON.decode(form.responseText);if (result.success == 'true') {return result.data;//返回true or false} else {Ext.Msg.show({title : '错误',msg : result.msg,buttons : Ext.Msg.OK,icon : Ext.Msg.ERROR});Ext.getBody().mask();}},failure : function(form, action) {Ext.Msg.show({title : '错误',msg : '系统出错!请联系管理员',buttons : Ext.Msg.OK,icon : Ext.Msg.ERROR});Ext.getBody().mask();}});}
方法
这显然是不行的,我这个小菜比都马上就发现问题了,因为ajax是异步的,这个函数在ext调用validate的时候只能返回一个undefined~~~~
那既然要解决这个问题,肯定是要ext在后台返回数据之后再执行验证的validate才可以。
继续查api发现了2个配置项validateOnBlur和validateOnChange而且默认值都是‘true’,说明他默认是失去焦点和内容改变的时候都会触发validate方法,再查看textfield的方法,发现ext把validate()方法提供出来了,这下也省去了自己去源代码里找的麻烦,哈哈。这样就简单了。只要把前面两个配置项都设为false不自动触发而由我们自己手动触发就可以拉。贴上代码。
{xtype : 'textfield',fieldLabel : '用户名',id : 'username',afterLabelTextTpl : me.required,allowBlank : false,validatorValue : false,validateOnBlur : false,validateOnChange : false,validator : function() {if(this.validatorValue){return true;}else{return '用户名已存在,请重新输入!';}},anchor : '95%',listeners : {blur : function(me) {Ext.Ajax.request({url : *******.baseURL+ '/sysmng/security/userExsistCheck',method : 'POST',params : {username : me.getValue()},success : function(form, action) {var result = Ext.JSON.decode(form.responseText);if (result.success == 'true') {if (result.data == true) {me.validatorValue = false;} else {me.validatorValue = true;}me.validate();} else {Ext.Msg.show({title : '错误',msg : result.msg,buttons : Ext.Msg.OK,icon : Ext.Msg.ERROR});Ext.getBody().mask();}},failure : function(form, action) {Ext.Msg.show({title : '错误',msg : '系统出错!请联系管理员',buttons : Ext.Msg.OK,icon : Ext.Msg.ERROR});Ext.getBody().mask();}});}}}
第一次写。请轻喷。哈哈~~~
- Ext4 用户名form输入框异步判断是否重名
- 输入密码或用户名判断是否正确
- 注册时,验证用户名是否重名
- Ajax 异步判断用户名是否存在开发流程
- 【java web】--Ajax异步判断用户名是否存在
- AJAX异步判断用户名是否已被注册
- 关于如何使用ajax异步判断用户名是否存在
- AJAX异步刷新-----判断用户名是否可用,预览头像
- LDAP 用户认证 判断输入用户名和密码是否正确
- Ext.form.HtmlEditor如何判断是否有输入
- 判断用户名是否可用
- 判断用户名是否正确
- Ajax实现无刷新验证用户名是否存在 (使用AjaxPro.2.dll)(当鼠标离开输入框时,即使判断用户名是否存在)
- jQuery+Ajax+Mysql 检测用户名注册时是否重名
- jquery+ajax 根据输入生成用户名并检测用户重名
- 异步查询用户名是否存在
- 异步校验用户名是否存在
- 判断分区是否为ext4文件系统
- dos启动盘访问硬盘
- C++ 默认构造函数
- JAVA中HashMap和Hashtable区别 .
- C++构造函数语义——默认构造函数
- 开源日志:关于nodejs
- Ext4 用户名form输入框异步判断是否重名
- 黑马程序员--XML添加读取删除的实现
- C++默认构造函数——深入理解
- magento 获取自定义产品属性和属性值
- Dom4j 学习资料
- google的站内搜索
- Project Euler problem 37
- github出错处理
- Android declare-styleable:自定义控件的属性(attr.xml,TypedArray)的使用