Form表单的入门详解

1.根类

       Ext.form.Basic

              提供了表单组件,字段管理,数据验证,表单提交,数据加载的功能

2.表单的容器

       Ext.form.Panel

              容器自动关联  Ext.form.Basic 的实例对象更方便的进行字段的配置 

              可以利用getForm方法来得到Basic对象

              重要属性: defaultType:"" 设定默认子项的xtype

3.数据交互和加载

       Ext.form.action.Action

              Ext.form.action.Submit  ajax方式提交异步操作

                     Ext.form.action.StandardSubmit  原始表单提交方法,会转到页面

              Ext.form.action.DirectLoad

                     Ext.form.action.DirectSubmit指令式的模式

4.字段的控制

       Ext.form.field.Base是根类

              混入了类 Ext.form.field.Field 得到表单值的处理功能

              混入了类 Ext.form.Labelable 得到表单标签错误信息提示的功能

              Ext.form.field.Text  文本框方式的

                     Ext.form.filed.TextArea  文本域

                     Ext.form.filed.Trigger  触发器

                            Ext.form.filed.Picker  选择器

                            Ext.form.filed.Time

                            Ext.form.filed.Data

                            Ext.form.filed.Number

                            Ext.form.filed.File文件上传的

                            Ext.form.filed.ComboBox选择框

              Ext.form.filed.Checkbox选择框方式的

                     Ext.form.filed.Radio  单选框

              Ext.form.filed.Hidden  特殊的---隐藏字段

       Ext.form.filed.HtmlEditor     特殊的---文本编辑框

5.其中夹杂布局的类

       Ext.form.FieldContainer

              Ext.form.CheckboxGroup

                     Ext.form.RadioGroup

       Ext.form.Label

              Ext.form.Labelable

       Ext.form.FieldSet

6.代码实例与注释说明:

Ext.onReady(function(){

       //定一个一个model,用于加载数据

       Ext.define("person",{

              extend:"Ext.data.Model",

              fields:[

                     {name:"userName",type:"auto"},

                     {name:"passWord",type:"auto"}

              ]

       });

       varp=new person({userName:"marico_zhang@163.com",passWord:"123456"});

       //--扩展验证类 ,用于自定义验证

       varpassText=/[123]/i //定义正则

       Ext.apply(Ext.form.field.VTypes,{

              myPass:function(val,field){

                     returnpassText.test(val); //正则验证

              },

              myPassText:"密码格式错误",

              myPassMask:/[123]/i//指定正则,不符合的输入不进去

       });

       vartextForm=Ext.create("Ext.form.Panel",{

              title:"form中文本框实例",

              bodyStyle:"padding:55 5 5",

              frame:true,

              height:120,

              width:300,

              id:"my_form",

              renderTo:"formDemo",

              defaultType:"textfield",//默认的类型

              defaults:{//默认的字段项的配置  field的默认配置

                     labelSeparator:":",  //label的分隔符

                     labelWidth:50,//label的宽

                     width:200,  //field 的宽

                     allowBlank:false,//是否能为空

                     msgTarget:"side",//提示信息现在的位置

                     labelAlign:"left"//左对齐

              },

              items:[{

                     fieldLabel:"Name",//label的信息

                     name:"userName",//指定的field的名字

                     id:"userName",

                     selectOnFocus:true,//当文本框获取焦点的时候是否全部选中内容

                     regex:/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/,  //对内容进行判断,正则表达式两边加定界符

                     regexText:"请用邮箱来注册", //正则的提醒

                     grow:false//是否在这个表单字段规定长度内自动根据文字的内容进行伸缩

              },{

                     fieldLabel:"Pass",//label的信息

                     name:"passWord",//指定的field的名字

                     id:"passWord",

                     inputType:"password",//规定输入的类型

                     vtype:"myPass"

              }],

              buttons:[//指定表单中的按钮

                     {text:'登录系统',handler:function(b){

                           

                            //考虑思路:通过Base来得到数值,需先得到base

                            //通过Basic来得到Base 方法findField(String id)

                            //通过form中的Panel getForm()方法得到Basic

                            //通过1>按钮按层次来得到 owerCt字段

                            //2>通过ID来得

                            varformObj=Ext.getCmp("my_form");

                            varbasic=formObj.getForm();

                            varnameField=basic.findField("userName");

                            varnameValue=nameField.getValue();

                            alert(nameValue);

                     }},{

                     text:"重置",handler:function(b){

                            varformObj=Ext.getCmp("my_form");

                            varbasic=formObj.getForm();

                            basic.reset();//重置

                     }},{

                            text:"装载数据",handler:function(b){

                            varformObj=Ext.getCmp("my_form");

                            varbasic=formObj.getForm();

                            basic.loadRecord(p);//重置         

                     }}

              ]

       });

});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值