欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ExtJS小试牛刀之表单验证

程序员文章站 2024-02-23 10:04:52
...

       对ExtJS基础稍微有所了解的人都知道,表单验证肯定需要到FormPanel了,那么FormPanel首先他是继承自Ext.Panel的,其他的如TreePanel,GridPanel,TabPanel等也是继承自Ext.Panel的,今天要说的是表单验证,为什么要用ExtJs的表单验证呢,自己手写JS代码也可以完成啊,因为Ext早就帮我们做好了,我只是拿过来用就可以了,写JS得多少行代码啊

    闲话少说,在验证之前,我不得不提两个小知识点:

第一点:

      //大家在很多的extjs代码中都看到了这两个,他们都起提示作用的
Ext.QuickTips.init();//支持tips提示
Ext.form.Field.prototype.msgTarget='side';//提示的方式,枚举值为"qtip","title","under","side",id(元素id)
   //side方式用的较多,右边出现红色感叹号,鼠标上去出现错误提示

   //大家可以分别去掉这两行代码,看效果就会明白他们的作用,(放在onReady的function(){}中)

第二点:

   //空验证的两个参数
  1.allowBlank:false//false则不能为空,默认为true
  2.blankText:string//当为空时的错误提示信息

具体代码如下

  var form1 = new Ext.form.FormPanel({
       width:350,
       frame:true,
       renderTo:"form1",
       labelWidth:80,
       title:"FormPanel",
       bodyStyle:"padding:5px 5px 0",
       defaults:{width:150,xtype:"textfield"},   //先用Ext.apply方法添加自定义的password验证函数(也可以取其他的名字)
     //配置items参数
       items:[
      {
    xtype:"textfield",
    allowBlank:false,
    fieldLabel:"邮箱",
                vtype:"email",//email格式验证
     blankText:"不能为空,请填写",
                vtypeText:"不是有效的邮箱地址",//错误提示信息,默认值我就不说了
                id:"blanktest",
                anchor:"90%"
               },
     {    fieldLabel:"密码",
           inputType:"password",
       id:"pass1",
       allowBlank:false,
       blankText:'请输入密码',
       anchor:"90%"
      },
      {
       fieldLabel:"确认密码",
        inputType:"password",
       id:"pass2",
       vtype:"password",//自定义的验证类型
      vtypeText:"两次密码不一致!",
      confirmTo:"pass1",//要比较的另外一个的组件的id
       anchor:"90%"
      }
   ],
      buttons:[{text:'提交'},{text:'取消'}]
   });
   Ext.apply(Ext.form.VTypes,{
    password:function(val,field){//val指这里的文本框值,field指这个文本框组件,大家要明白这个意思
    if(field.confirmTo){//confirmTo是我们自定义的配置参数,一般用来保存另外的组件的id值
     var pwd=Ext.get(field.confirmTo);//取得confirmTo的那个id的值
     return (val==pwd.getValue());
    }
    return true;
    }
   });

   

  

 

相关标签: EXT prototype