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();
});
分享到:
相关推荐
在EXT JS这个强大的JavaScript框架中,FormPanel是用于创建表单的重要组件,它允许开发者构建交互式的、数据驱动的Web应用程序。FormPanel不仅提供了一种布局管理方式,还支持各种表单元素,如文本框、复选框、下拉...
FormPanel 是 ExtJS 中的一个核心组件,用于创建和处理表单元素,包括输入字段、按钮、选择框等。它提供了丰富的功能,如数据验证、远程提交、异步加载等,是构建用户交互界面的关键部分。 在ExtJS中,FormPanel是...
在本文中,我们将深入探讨ExtJS 2.0中的FormPanel组件,并通过具体的示例来了解如何使用不同的组件,如checkbox、radio以及htmleditor。首先,Ext.FormPanel是ExtJS中用于创建表单的主要组件,它允许我们构建复杂的...
Sencha Touch 是一款用于构建移动Web应用的JavaScript框架,它提供了丰富...通过Sencha Touch的Ajax支持、FormPanel组件以及Google Maps API的集成,我们可以构建出一款功能丰富的应用,提供用户友好的界面和交互体验。
在IT领域,FormPanel和Store是ExtJS框架中两个重要的组件,它们在构建富客户端应用程序时发挥着核心作用。本文将深入探讨如何实现自我扩展的FormPanel和Store,以及它们如何实现自动数据触发感知功能和与Store的绑定...
这种做法的好处在于,我们可以复用同一个FormPanel组件,只需在不同的场景下改变其提交的目标URL,提高了代码的可重用性和灵活性。 在实际项目中,可能还需要处理其他一些细节,例如表单的验证、错误处理、以及提交...
在Web开发中,FormPanel是ExtJS库中的一个关键组件,用于创建表单来收集用户输入的数据。这篇博客“FormPanel的插入与删除”显然探讨了如何在FormPanel中动态添加和移除字段,这对于构建可扩展和动态的用户界面至关...
Ext JS的`Ext.form.Panel`(formpanel)是一个用于创建表单的组件,它可以包含各种输入控件、标签和其他表单元素。在formpanel中使用table布局,可以按照表格的形式组织表单元素,这在处理多列或多行表单布局时非常...
首先,`treeGrid`是一种特殊的表格组件,它结合了树形视图和网格视图,能够展示数据的层级关系。`treeGrid`中的每一行都可以展开和折叠,展示或隐藏子节点。`treeGrid`的数据通常来自服务器,通过JSON格式传输,如`...
本文将深入探讨如何在ExtJs中使用`FormPanel`组件结合`form`和`column`布局属性来实现横向布局,即在一个表单中元素能够按照列分布,形成一种更为直观和用户友好的界面设计。 ### 一、理解`FormPanel`及其属性 `...
首先,我们需要理解ExtJS中的FormPanel组件。FormPanel是ExtJS用来创建表单的主要类,它可以包含各种表单字段,如文本框、复选框、下拉框等,以及用于提交表单的按钮。在文件上传场景中,我们需要添加一个...
1. **`form`** - `Ext.FormPanel`或`Ext.form.FormPanel`,表单面板组件,用于创建表单并管理其字段。 2. **`checkbox`** - `Ext.form.Checkbox`,多选框组件,用于创建多选输入。 3. **`combo`** - `Ext.form....
例如,你可以创建一个通用的FormPanel组件,然后在将其添加到不同容器时,根据具体场景为其分配不同的提交URL。 总结一下,ExtJS4中给同一个FormPanel设置不同URL的关键在于: 1. 不在FormPanel的配置中硬编码`url...
**2.16 Form Panel (Ext.FormPanel)** - **xtype**: `form` - **功能描述**:Form Panel 是一个包含表单字段的面板。 - **主要用途**:用于创建和管理表单,支持数据验证和提交。 **2.17 Checkbox (Ext.form....
在本篇文章中,我们将深入探讨如何使用Extjs4中的FormPanel组件从后台加载JSON数据,并将其映射到表单的各个字段中进行显示。这是一项非常实用的技术,尤其是在需要动态填充表单的情况下。 ### 一、Extjs4 ...
1. `form`:`Ext.FormPanel`是EXT JS中的表单面板,它是一个容器,可以容纳各种表单字段和其他组件。表单面板允许你定义布局、提交行为以及处理表单数据的方法。 2. `checkbox`:`Ext.form.Checkbox`是用于创建复选...
EXTJS的上传组件通常是基于EXTJS的FormPanel和FileField组件构建的,FileField组件可以设置为多选模式,从而支持批量选择文件。 首先,我们需要创建一个EXTJS的FormPanel实例,其中包含一个配置为`multiple: true`...
- 表单:FormPanel组件用于创建交互式的表单,可以包含各种输入控件,如文本框、选择框、日期选择器等。 5. **swfupload**:这是一个Flash插件,用于实现多文件上传功能。它可以处理大文件上传,并且提供了进度条...
对于修改(Update)操作,通常会涉及到已有的表单数据的更新,可以使用FormPanel组件的loadRecord()方法来加载需要修改的数据记录,用户修改完毕后,再通过提交表单来更新后端的数据。 关于ExtJs的增删改查操作,...