ExtJs2.0学习系列(5)--Ext.FormPanel之第二式

ExtJs2.0学习系列(5)--Ext.FormPanel之第二式

 

 

上篇中我们简单的谈到了FormPanel中的fieldset和ComboBox,今天我们继续把这个话题说下去,说全一点,说深一点。
3.可选的fieldset实例
  
其实就是带个chechbox,有点像论坛注册时有一部分是选填信息的那种效果,主要知识点:

// 因为觉得这个参数特别,特举一例以说明
1 .checkboxToggle: true // true则呈现一个带checkbox的fieldset,选中则展开,否则相反,默认为false
2 .checkboxName:string // 当上面为true时,作为checkbox的name,方便表单操作

这里我把js核心代码贴出来(html代码与上一篇中完全相同,不列出):

// 在上一节的基础代码的items里面添加如下配置
{
xtype:
" fieldset " ,
checkboxToggle:
true ,//关键参数,其他和以前的一样
checkboxName:
" dfdf " ,
title:
" 选填信息 " ,
defaultType:
' textfield ' ,
width:
330 ,
autoHeight:
true ,//使自适应展开排版
items:[{
    fieldLabel:
" UserName " ,
    name:
" user " ,
    anchor:
" 95% " // 330px-labelWidth剩下的宽度的95%,留下5%作为后面提到的验证错误提示
  },
  {
    fieldLabel:
" PassWord " ,
    inputType:
" password " , // 密码文本
    name: " pass " ,
    anchor:
" 95% "
  }]
}

4.表单验证实例(空验证,密码确认验证,email验证)
我们可以用单独的js写表单验证,但是extjs已经为我们想到了(自己单独写反而不方便)。
在验证之前,我不得不提两个小知识点:
// 大家在很多的extjs代码中都看到了这两个,他们都起提示作用的
Ext.QuickTips.init(); // 支持tips提示
Ext.form.Field.prototype.msgTarget = ' side ' ; // 提示的方式,枚举值为"qtip","title","under","side",id(元素id)
           // side方式用的较多,右边出现红色感叹号,鼠标上去出现错误提示,其他的我就不介绍了,可自行验证
//
大家可以分别去掉这两行代码,看效果就会明白他们的作用,(放在onReady的function(){}中)

1.我们看一个最简单的例子:空验证(其实这不算是一个专门的验证例子)
// 空验证的两个参数
1 .allowBlank: false // false则不能为空,默认为true
2 .blankText:string // 当为空时的错误提示信息
js代码为:
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 " ,inputType: " password " },
       items:[
               {fieldLabel:
" 不能为空 " ,
                allowBlank:
false , // 不允许为空
                 blankText: " 不能为空,请填写 " , // 错误提示信息,默认为This field is required!
                id: " blanktest " ,
                anchor:
" 90% "
               }
       ]
    });

2.用vtype格式进行简单的验证。
在此举邮件验证的例子,重写上面代码的items配置:
items:[
               {fieldLabel:
" 不能为空 " ,
                vtype:
" email " , // email格式验证
                vtypeText: " 不是有效的邮箱地址 " , // 错误提示信息,默认值我就不说了
                id: " blanktest " ,
                anchor:
" 90% "
               }

你可以修改上面的vtype为以下的几种extjs的vtype默认支持的验证:
// form验证中vtype的默认支持类型
1 .alpha  // 只能输入字母,无法输入其他(如数字,特殊符号等)
2 .alphanum // 只能输入字母和数字,无法输入其他
3 .email // email验证,要求的格式是"langsin@gmail.com"
4 .url // url格式验证,要求的格式是http://www.langsin.com
3.确认密码验证(高级自定义验证)
前面的验证都是extjs已经提供的验证,我们也可以自定义验证函数,比上面要复杂点了。我们一起做一个密码确认的例子。
我们修改前面的代码:
// 先用Ext.apply方法添加自定义的password验证函数(也可以取其他的名字)
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 ;
    }
});
// 配置items参数
items:[{fieldLabel: " 密码 " ,
                id:
" pass1 " ,
                anchor:
" 90% "
               },{
                fieldLabel:
" 确认密码 " ,
                id:
" pass2 " ,
                vtype:
" password " , // 自定义的验证类型
                  vtypeText: " 两次密码不一致! " ,
                  confirmTo:
" pass1 " , // 要比较的另外一个的组件的id
                anchor: " 90% "
               }

关于vtype的内容还有很多内容要挖掘,但现在我们就点到这里为止,以后有机会再讨论它的其他高级验证。
不知不觉中写了这么多,大家都要歇息了,我们下次再接着讨论,
(因为本人近期考试和其他锁杂事情,近期可能更新较慢,还请大家海量,耐心,支持!)



Tag标签: ExtJs2.0
posted @ 2008-07-03 02:01 谦虚的天下 阅读(2287) 评论(18)   编辑 收藏 所属分类: ExtJs学习系列

   回复   引用   查看     
#1楼  2008-07-03 08:47 | 心悦       
支持!
   回复   引用   查看     
#2楼  [ 楼主]2008-07-03 12:09 | 谦虚的天下       
怎么没有人顶啊!我好失落啊..
写的不好吗???
   回复   引用     
#3楼  2008-07-03 12:39 | 旋转蒸发器 [未注册用户]
学习ext源码。*
   回复   引用     
#4楼  2008-07-03 16:11 | wunan [未注册用户]
这个是楼主原创的吗?

如果是真的话, 非常感谢你的辛勤劳动.
现在extjs的资料很少, 很多人以此大赚一笔,
希望你的教程能让更多人认识extjs, 本人超爱extjs的

再次感谢~
   回复   引用     
#5楼  2008-07-03 16:13 | wunan [未注册用户]
在说下~ 希望能坚持下去~

肯定会有更多的人看的~
   回复   引用   查看     
#6楼  [ 楼主]2008-07-03 16:35 | 谦虚的天下       
@wunan
不是原创的,怎么敢放在首页?
倒是本人看见很多转载本系列文章不注明的...
   回复   引用   查看     
#7楼  2008-07-03 17:42 | 心有灵犀       
不错,支持
   回复   引用   查看     
#8楼  [ 楼主]2008-07-03 17:45 | 谦虚的天下       
谢谢楼上的兄弟们!
   回复   引用     
#9楼  2008-07-04 09:54 | 刘 [未注册用户]
写的很好,支持。前一段做了一些工作,但是还是一头雾水。谢谢
   回复   引用   查看     
#10楼  [ 楼主]2008-07-04 12:03 | 谦虚的天下       
@刘
--引用--------------------------------------------------
前一段做了一些工作,但是还是一头雾水。谢谢
--------------------------------------------------------
什么意思?呵呵,谢谢支持...

   回复   引用     
#11楼  2008-07-07 00:02 | rendong [未注册用户]
你好,能弄个复杂form的例子么,比如有的一行三个控件,有的两个,中间还有文本,隐藏某行等等
   回复   引用   查看     
#12楼  [ 楼主]2008-07-07 00:10 | 谦虚的天下       
@rendong
当然可以,在form的最后一篇中我们会做个综合的form表单提交的例子
当然是与.net结合的
敬请期待...
   回复   引用     
#13楼  2008-07-07 12:55 | rendong [未注册用户]
@谦虚的天下
谢谢 期待 希望早点看到
   回复   引用     
#14楼  2008-07-08 14:51 | Brett.Wu [未注册用户]
谢谢楼主,真是好东西!
   回复   引用     
#15楼  2008-07-14 00:49 | GYB [未注册用户]
写的很好 很容易看懂!
   回复   引用     
#16楼  2008-07-14 16:03 | Jason.Jane [未注册用户]
--引用--------------------------------------------------
rendong: 你好,能弄个复杂form的例子么,比如有的一行三个控件,有的两个,中间还有文本,隐藏某行等等
--------------------------------------------------------
我也对这个很期待。。。。
希望楼主能尽快写出来。
   回复   引用     
#17楼  2008-08-06 21:01 | J2EEer [未注册用户]
呵呵 一直再看就是没回复 呵呵 现在弄你个的几个例子整理制作了一份样例,在公司大家再用,真的很谢谢你发的教程
   回复   引用     
#18楼  2008-08-27 11:39 | zxglyh [未注册用户]
谢谢楼主 写得很不错!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值