验证。。。
1、不允许放空(当用户不填值时就提交的话,就用红线画出。。。)
实现方法很简单,在items中的输入框定义时加上下面这句话就行了。
allowBlank:false
2、重输密码验证(如果两次密码不一致就在下面画红线)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" /> <title>注册</title> <script type="text/javascript" src="../adapter/ext/ext-base.js"> </script> <script type="text/javascript" src="../ext-all.js"> </script> <script type="text/javascript" src="../build/locale/ext-lang-zh_CN.js"> </script> <script type="text/javascript"> Ext.onReady(function(){ var myForm = new Ext.form.FormPanel({ title:"简单的用户注册", width:320, layout:"form", //labelWidth:45, plain:true, frame:true, renderTo:"login_field", collapsible:true, autoHeight:true, //height:120, buttonAlign:"center", defaults:{xtype:"textfield"}, style:"text-align:left", items:[ { xtype:"fieldset", title:"注册框", collapsible:true, autoHeight:true, width:300, defaults:{width:150}, defaultType:"textfield", style:"text-align:left", items:[ { fieldLabel:"用户帐号", name:"name", id:"name", allowBlank:false, blankText:"用户名不能为空!", anchor:"90%", selectOnFocus : true }, { fieldLabel:"用户密码", inputType:"password", id:"psw", allowBlank:false, blankText:"用户密码不能为空!", anchor:"90%", selectOnFocus : true }, { fieldLabel:"重输密码", inputType:"password", //输入的格式是。。。。。。 id:"psw2", vtype:"pswCheck",//这是一个验证用的方程式,在下面定义 vtypeText:"注意,两次输入的密码不一样", confirmTo:"psw", //和上面的psw输入框比较,这个属性是我们自己定义的,下面用到 allowBlank:false, blankText:"重输密码不能为空!", anchor:"90%", selectOnFocus : true //点中的时候全选 }, { fieldLabel:"用户身份", xtype:"combo", id:"status_id", width:145, editable:false, store:[['0','A类读者'],['1','B类读者']],//数据源是一个数组 hiddenName:'status',//这里千万不要与id同名,不然服务器接收的值异常。 emptyText:"请选择登录身份", allowBlank:false, blankText:"用身份不能为空,请选择!", triggerAction:"all"//每次选中一项,之后再选也会将所有列表显示出来。 } ] }], buttons:[ { xtype:"button", text : '注册', } ] }); //自动验证函数 Ext.apply(Ext.form.VTypes,{ "pswCheck":function(value,field){//value指这里的文本框值,field指这个文本框组件 if(field.confirmTo){//confirmTo是我们自定义的配置参数,一般用 //来保存另外的组件的id值 var psw = Ext.get(field.confirmTo); return (value == psw.getValue()); } } }); }); </script> </head> <body> <div id="login_field" style="margin:50px"></div> </body> </html>
3、用正则表达式来验证
关于正则表达式的知识,我以前写过一篇相关博客,过会儿将转载过来。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" /> <title>注册</title> <script type="text/javascript" src="../adapter/ext/ext-base.js"> </script> <script type="text/javascript" src="../ext-all.js"> </script> <script type="text/javascript"> Ext.onReady(function(){ var myForm = new Ext.form.FormPanel({ title:"输入用户信息", width:320, layout:"form", plain:true, frame:true, collapsible:true, autoHeight:true, renderTo:"login_field", buttonAlign:"center", defaults:{xtype:"textfield"}, style:"text-align:left", items:[ { xtype:"fieldset", title:"请输入", collapsible:true, autoHeight:true, width:300, defaults:{width:150}, defaultType:"textfield", style:"text-align:left", items:[ { fieldLabel : "用户ID", id : "readerId", vtype:"idTest", vtypeText:"输入的ID有误,请重新输入", width:(window.screen.width-300)*0.16, itemCls:'float-left',//向左浮动 clearCls:'allow-float',//允许浮动 selectOnFocus : true,//得到焦点时自动选择文本 allowBlank : true, blankText:"用户ID不能为空!", //anchor:"90%", //有了width之后 ,这句话就不要了 selectOnFocus : true }, { fieldLabel : '年龄', id : 'age', vtype:"ageTest", vtypeText:"输入的年龄不合法或不太现实", width:(window.screen.width-300)*0.16, itemCls:'float-left',//向左浮动 // clearCls:'allow-float',//允许浮动 selectOnFocus : true,//得到焦点时自动选择文本 allowBlank : true }, { fieldLabel : '电话', id : 'phone', vtype:"phoneTest", vtypeText:"输入号码有误,请仔细检查后重新输入!", width:(window.screen.width-300)*0.16, itemCls:'float-left',//向左浮动 clearCls:'allow-float',//允许浮动 selectOnFocus : true,//得到焦点时自动选择文本 allowBlank : true } ] }], buttons:[ { xtype:"button", text : '注册', } ] }); //自动验证函数 Ext.apply(Ext.form.VTypes,{ idTest:function(value){ if(/^\d+$/.test(value)){ //正则表达式在这里用到,用法如左边所示 return true; }else{ return false; } }, ageTest:function(value){ if(/^\d+$/.test(value)){ var _age = parseInt(value); if(_age<200) { return true; }else { return false; } } }, phoneTest:function(value){ if(/^\d{3}$/.test(value)){ return true; }else{ return false; } } }); }); </script> </head> <body> <div id="login_field" style="margin:50px"></div> </body> </html>