`
finally_m
  • 浏览: 69645 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(十三) FormPanel组件

    博客分类:
  • AJAX
阅读更多

FormPanel组件
在web页面中,表单可谓是最常用的控件之一,ext的表单控件同样强悍,且使用非常简单,下面我们实现一个简单的带验证的表单,看以下代码:
Ext.onReady(function(){
  Ext.QuickTips.init();//开启表单提示
        Ext.form.Field.prototype.msgTarget = 'side';//设置提示信息位置为边上
        var simple = new Ext.FormPanel({//初始化表单面板
        labelWidth: 75, // 默认标签宽度
        frame:true,//设置表单面板,false为无面板
        title: '我的表单',
        bodyStyle:'padding:5px 5px 0',
        width: 350,
        defaults: {width: 230},
        defaultType: 'textfield', //默认字段类型
        items: [{
                fieldLabel: '帐户',
                name: 'name',
                allowBlank:false,//禁止为空
                blankText: '帐户不能为空'
            },{
                fieldLabel: '密码',
                name: 'pws',
                allowBlank:false,//禁止为空
                blankText: '密码不能为空'//可限制多种类型,具体参照api文档
            }
        ],
        buttons: [{
            text: '登录',
            handler:function(){alert("你提交了表单!");}
        },{
            text: '取消',
            handler:function(){simple.form.reset();}//重置表单
        }]
    });
    simple.render('show');//填充到指定区域
});


<div id="show"></div>

 

也可以将表单作为窗体的一部分,看以下代码 :
 Ext.onReady(function(){
  //Ext.QuickTips.init();//开启表单提示
        Ext.form.Field.prototype.msgTarget = 'side';//设置提示信息位置为边上
        var simple = new Ext.FormPanel({//初始化表单面板
        labelWidth: 75, // 默认标签宽度板
  baseCls: 'x-plain',//不设置该值,表单将保持原样,设置后表单与窗体完全融合
        bodyStyle:'padding:5px 5px 0',
        width: 350,
  border:false,
        defaults: {width: 230},
        defaultType: 'textfield',//默认字段类型
        items: [{
                fieldLabel: '帐户',
                name: 'name',
                allowBlank:false,
    blankText: '帐户不能为空'
            },{
                fieldLabel: '密码',
                name: 'pws',
    allowBlank:false,//禁止为空
    blankText: '密码不能为空'//可限制多种类型,具体参照api文档
            }
        ],
        buttons: [{
            text: '登录',
   handler:function(){alert("你提交了表单!");}
        },{
            text: '重置',
   handler:function(){simple.form.reset();}//重置表单
        }]
    });
   
 //构建窗体,窗体会在之后具体讲
 win = new Ext.Window({
    id:'win',
    title:'登陆',
    layout:'fit',     
    width:360,
    height:150,
    plain:true,
    bodyStyle:'padding:5px;',
    maximizable:false,
    closeAction:'close',
    closable:false,
    collapsible:true,
    plain: true,
    buttonAlign:'center',
    items:simple//作为窗体元素
  });
 win.show();
});


FormPanel应用示例:
 Ext.onReady(function(){
  //创建Form面板  
 var fp = new Ext.form.FormPanel({  
    buttonAlign:'center',  
    labelAlign:'right',  
    labelWidth:40,  
    frame:true,  
    bodyStyle:'padding:8px 0 0 0;',  
    items:[{  
        xtype:'textfield',  
        fieldLabel:'姓名',  
        name:'n_username',  
        id:'i_username',  
        width:320  
    },{  
        xtype:'radio',  
        fieldLabel:'性别',  
        boxLabel:'男',  
        name:'sex',  
        id:'male',  
        itemCls:'sex-male', //向左边浮动,处理控件横排  
        clearCls:'allow-float', //允许两边浮动,在实际生成的HTML结构中有专门的DIV阻断浮动  
        checked:true 
    },{  
        xtype:'radio',  
        boxLabel:'女',  
        name:'sex',  
        id:'female',  
        itemCls:'sex-female', //向左浮动,处理控件横排  
        clearCls:'allow-float', //允许两边浮动  
        hideLabel:true //不显示前面"性别"的标签  
    },{  
        xtype:'textfield',  
        fieldLabel:'年龄',  
        name:'n_age',  
        id:'i_age',  
        itemCls:'age-field', //向左浮动,处理控件横排  
        width:133  
    },{  
        xtype:'textfield',  
        fieldLabel:'住址',  
        name:'n_address',  
        id:'i_address',  
        itemCls:'stop-float', //不允许浮动,结束控件横排  
        width:320  
    }],  
    buttons:[{  
        text:'确定',  
        handler:onOK //实际应用一般是处理fp.getForm.submit()事件  
    }, {  
        text:'重置',  
        handler:function(){ fp.getForm().reset(); }  
    }],  
    keys:[{ //处理键盘回车事件  
        key:Ext.EventObject.ENTER,  
        fn:onOK,  
        scope:this 
    }]  
});  
 
//确定按钮事件,这里只是简单获取各控件值,实际应用一般和后台脚本结合  
function onOK() {  
    var strMsg;  
    strMsg = '姓名:' + fp.getComponent('i_username').getValue() + ',性别:';  
    if (fp.getComponent('male').checked) strMsg += '男';  
    if (fp.getComponent('female').checked) strMsg += '女';  
    strMsg += ',年龄:' + fp.getComponent('i_age').getValue();  
    strMsg += ',住址:' + fp.getComponent('i_address').getValue();  
    alert(strMsg);  
}  
 
//创建主窗口  
new Ext.Window({  
    title:'Ext中FormPanel面板及Form控件横排测试(CSS)',  
    width:400,  
    closable:false,  
    collapsible:true,  
    draggable:false,  
    resizable:false,  
    modal:true,  
    border:false,  
    items:[fp],  
    buttons:[]  
}).show();  
 });

分享到:
评论

相关推荐

    extJs中关于formPanel动态添加组件的验证问题

    在EXT JS这个强大的JavaScript框架中,FormPanel是用于创建表单的重要组件,它允许开发者构建交互式的、数据驱动的Web应用程序。FormPanel不仅提供了一种布局管理方式,还支持各种表单元素,如文本框、复选框、下拉...

    extjs中的formPanel以及表单的应用

    FormPanel 是 ExtJS 中的一个核心组件,用于创建和处理表单元素,包括输入字段、按钮、选择框等。它提供了丰富的功能,如数据验证、远程提交、异步加载等,是构建用户交互界面的关键部分。 在ExtJS中,FormPanel是...

    .archExtJs2.0学习系列(7)--Ext.FormPanel之第四式(其他组件示例篇).doc

    在本文中,我们将深入探讨ExtJS 2.0中的FormPanel组件,并通过具体的示例来了解如何使用不同的组件,如checkbox、radio以及htmleditor。首先,Ext.FormPanel是ExtJS中用于创建表单的主要组件,它允许我们构建复杂的...

    sencha的ajax+formpanel+google地图

    Sencha Touch 是一款用于构建移动Web应用的JavaScript框架,它提供了丰富...通过Sencha Touch的Ajax支持、FormPanel组件以及Google Maps API的集成,我们可以构建出一款功能丰富的应用,提供用户友好的界面和交互体验。

    自我扩展FormPanel 和Store

    在IT领域,FormPanel和Store是ExtJS框架中两个重要的组件,它们在构建富客户端应用程序时发挥着核心作用。本文将深入探讨如何实现自我扩展的FormPanel和Store,以及它们如何实现自动数据触发感知功能和与Store的绑定...

    extjs4如何给同一个formpanel不同的url_.docx

    这种做法的好处在于,我们可以复用同一个FormPanel组件,只需在不同的场景下改变其提交的目标URL,提高了代码的可重用性和灵活性。 在实际项目中,可能还需要处理其他一些细节,例如表单的验证、错误处理、以及提交...

    FormPanel的插入与删除

    在Web开发中,FormPanel是ExtJS库中的一个关键组件,用于创建表单来收集用户输入的数据。这篇博客“FormPanel的插入与删除”显然探讨了如何在FormPanel中动态添加和移除字段,这对于构建可扩展和动态的用户界面至关...

    Ext table布局实例 formpanel的table布局

    Ext JS的`Ext.form.Panel`(formpanel)是一个用于创建表单的组件,它可以包含各种输入控件、标签和其他表单元素。在formpanel中使用table布局,可以按照表格的形式组织表单元素,这在处理多列或多行表单布局时非常...

    treeGrid目录拖动到formPanel

    首先,`treeGrid`是一种特殊的表格组件,它结合了树形视图和网格视图,能够展示数据的层级关系。`treeGrid`中的每一行都可以展开和折叠,展示或隐藏子节点。`treeGrid`的数据通常来自服务器,通过JSON格式传输,如`...

    ExtJs中表单formPanel的横向布局

    本文将深入探讨如何在ExtJs中使用`FormPanel`组件结合`form`和`column`布局属性来实现横向布局,即在一个表单中元素能够按照列分布,形成一种更为直观和用户友好的界面设计。 ### 一、理解`FormPanel`及其属性 `...

    Extjs2.x 实现文件上传组件

    首先,我们需要理解ExtJS中的FormPanel组件。FormPanel是ExtJS用来创建表单的主要类,它可以包含各种表单字段,如文本框、复选框、下拉框等,以及用于提交表单的按钮。在文件上传场景中,我们需要添加一个...

    ExtJs组件类的对应表

    1. **`form`** - `Ext.FormPanel`或`Ext.form.FormPanel`,表单面板组件,用于创建表单并管理其字段。 2. **`checkbox`** - `Ext.form.Checkbox`,多选框组件,用于创建多选输入。 3. **`combo`** - `Ext.form....

    ExtJS4如何给同一个formpanel不同的url

    例如,你可以创建一个通用的FormPanel组件,然后在将其添加到不同容器时,根据具体场景为其分配不同的提交URL。 总结一下,ExtJS4中给同一个FormPanel设置不同URL的关键在于: 1. 不在FormPanel的配置中硬编码`url...

    Ext组件描述,各个组件含义

    **2.16 Form Panel (Ext.FormPanel)** - **xtype**: `form` - **功能描述**:Form Panel 是一个包含表单字段的面板。 - **主要用途**:用于创建和管理表单,支持数据验证和提交。 **2.17 Checkbox (Ext.form....

    Extjs4的FormPanel从后台load json数据的要点

    在本篇文章中,我们将深入探讨如何使用Extjs4中的FormPanel组件从后台加载JSON数据,并将其映射到表单的各个字段中进行显示。这是一项非常实用的技术,尤其是在需要动态填充表单的情况下。 ### 一、Extjs4 ...

    EXT.form组件

    1. `form`:`Ext.FormPanel`是EXT JS中的表单面板,它是一个容器,可以容纳各种表单字段和其他组件。表单面板允许你定义布局、提交行为以及处理表单数据的方法。 2. `checkbox`:`Ext.form.Checkbox`是用于创建复选...

    批量上传文件 EXTJS文件上传 上传组件

    EXTJS的上传组件通常是基于EXTJS的FormPanel和FileField组件构建的,FileField组件可以设置为多选模式,从而支持批量选择文件。 首先,我们需要创建一个EXTJS的FormPanel实例,其中包含一个配置为`multiple: true`...

    S2SH+mysql+Extjs4.1简单入门项目实例(包含表格,统计图表,表单等基础组件和swfupload多文件上传)

    - 表单:FormPanel组件用于创建交互式的表单,可以包含各种输入控件,如文本框、选择框、日期选择器等。 5. **swfupload**:这是一个Flash插件,用于实现多文件上传功能。它可以处理大文件上传,并且提供了进度条...

    extJs 常用到的增,删,改,查操作代码

    对于修改(Update)操作,通常会涉及到已有的表单数据的更新,可以使用FormPanel组件的loadRecord()方法来加载需要修改的数据记录,用户修改完毕后,再通过提交表单来更新后端的数据。 关于ExtJs的增删改查操作,...

Global site tag (gtag.js) - Google Analytics