Ext中创建Form有两种方式,一种是使用Ext.form.BaseForm,另一种是使用Ext.form.FormPanel。
1 使用Ext.form.BaseForm封装HTML原生的form:
jsp页面:
<form id="queryForm" action="" >
<table cellpadding="2" cellspacing="1" >
<tr>
<td> 物料编码:</td>
<td><input type="text" id="marcNo" style="width: 180px;"></td>
<td> 品名:</td>
<td><input type="text" id="marcName" style="width: 100px"></td>
<td> 创建时间:</td>
<td><input id="startDate" type="text" name="startDate" style="width: 85px" ></td>
<td style="text-align: center;">至</td>
<td style="text-align: left;"><input id="endDate" type="text" name="endDate" style="width: 85px" ></td>
</tr>
<tr>
<td> 物料描述:</td>
<td><input type="text" id="marcDesc" style="width: 180px"></td>
<td> 状态:</td>
<td>
<select id="statusRmk" name="statusRmk">
<option value="">请选择</option>
<option value="1">正常使用</option>
<option value="2">冻结状态</option>
<option value="3">删除</option>
</select>
</td>
<td> 类别:</td>
<td>
<select id="marcKind" name="marcKind">
<option value="">请选择</option>
<option value="1" >类别1</option>
<option value="2" >类别2</option>
<option value="3" >类别3</option>
</select>
</td>
<td colspan="2" style="text-align: right;padding-left: 5px;">
<div id="toolBar"></div>
</td>
</tr>
</table>
</form>
js代码
<script>
var queryForm,marcNo,marcDesc,marcName,statusRmk,marcKind,startDate,endDate;
/**
* 初始化ext Form
*/
function initForm(){
//物料编码
marcNo = new Ext.form.TextField({
applyTo: 'marcNo',
name: 'marcNo',
allowBlank: true,
maxLength: 20,
width: 180,
enableKeyEvents: true,
listeners: {
keyup: function(diviNo,e){
marcNo.setValue(marcNo.getValue().toUpperCase());
}
}
});
//物料描述
marcDesc = new Ext.form.TextField({
applyTo: 'marcDesc',
name: 'marcDesc',
allowBlank: true,
maxLength: 100,
width: 180
});
//品名
marcName = new Ext.form.TextField({
applyTo: 'marcName',
name: 'marcName',
allowBlank: true,
maxLength: 100,
width: 100
});
//状态
statusRmk = new Ext.form.ComboBox({
transform: 'statusRmk',
name: 'statusRmk',
hiddenName: 'statusRmk',
typeAhead: true,
mode: 'local',
editable: false,
allowBlank: true,
triggerAction: 'all',
selectOnFocus: true,
width: 100
});
//类别
marcKind = new Ext.form.ComboBox({
transform: 'marcKind',
name: 'marcKind',
hiddenName: 'marcKind',
typeAhead: true,
mode: 'local',
editable: false,
allowBlank: true,
triggerAction: 'all',
selectOnFocus: true,
width: 85
});
//时间段-开始时间
startDate = new Ext.form.DateField({
id: 'startDate',
applyTo: 'startDate',
name: 'startDate',
allowBlank: true,
width: 85,
format: 'Y/m/d',
invalidText: '{0}不符合{1}的格式要求!',
vtype: 'daterange',
endDateField: 'endDate',
altFormats: 'Y/m/d'
});
//时间段-结束时间
endDate = new Ext.form.DateField({
id: 'endDate',
applyTo: 'endDate',
name: 'endDate',
allowBlank: true,
width: 85,
format: 'Y/m/d',
invalidText: '{0}不符合{1}的格式要求!',
listeners: {
},
vtype: 'daterange',
startDateField: 'startDate',
altFormats: 'Y/m/d'
});
queryForm = new Ext.form.BasicForm('queryForm'); //创建Form对象
queryForm.add(marcNo,marcDesc,marcName,statusRmk,marcKind,startDate,endDate); //添加元素
}
</script>
2 使用Ext.form.FormPanel:
jsp代码:
<!-- 用户类型 -->
<select id="userKind" name="userKind">
<erpit:options key="USER_KIND" selectVal="${wuser.userKind}"></erpit:options>
</select>
js代码
//制定form表单各个子项
var userId=new Ext.form.Hidden({
id : 'userId',
name:'userId',
value:'<c:out value="${wuser.id}" />'
});
var userNo=new Ext.form.TextField({
id : 'userNo',
name:'userNo',
fieldLabel :'帐 号',
value:'<c:out value="${wuser.userNo}" />',
allowBlank: false,
maxLength:20,
listeners :{
blur :function(userNo){
userNo.setValue(userNo.getValue().toUpperCase());
}
}
});
var userPassword=new Ext.form.TextField({
id : 'userPassword',
name:'userPassword',
fieldLabel :'密 码'
});
var email=new Ext.form.TextField({
id : 'email',
name:'email',
fieldLabel :'电子邮件',
allowBlank: false,
value:'<c:out value="${wuser.email}" />',
maxLength:20,
vtype:'email'
});
var memo=new Ext.form.TextArea({
id : 'memo',
name:'memo',
fieldLabel :'备 注',
value:'<c:out value="${wuser.memo}" />',
width:400,
height:100
});
var userKind=new Ext.form.ComboBox({
transform:'userKind',
id:'userKind',
valueField:'no',
fieldLabel :'用户类别',
displayField:'desc',
typeAhead: true,
mode: 'local',
editable: true,
allowBlank: false,
triggerAction: 'all',
selectOnFocus: true
});
//制定form表单
var centerForm = new Ext.form.FormPanel({
id:'centerForm',
frame:true,
labelAlign:'right',
layout:'form',
labelWidth:80,
items:[userId,userNo,perNo,userName,userPassword,email,tel,userKind,memo]
});
3 Ext form加载Record中的数据:form.loadRecord(record);采用此方法可以实现grid行中的数据与form关联。
4 Ext form提交
(1)采用Ext.Ajax.request提交
Ext.Ajax.request({
url: '<c:out value="${path}" />/wcolm.htm?method=saveData',
params: {
colId :colmId.getValue(), //Ext form组件
detailData:Ext.encode(dataArr)
},
success: function(response, options){
var rtnObj = Ext.util.JSON.decode(response.responseText);
if(rtnObj.success){
yyExt.info('系統提示',"资料保存成功!");
}else{
yyExt.alert("系统提示","保存资料出错,"+unescape(rtnObj.info),"ERROR");
}
},
failure: function(response, options){
var rtnObj = Ext.util.JSON.decode(response.responseText);
yyExt.alert("系统提示","保存资料出错,"+unescape(rtnObj.info),"ERROR");
return false;
}
});
(2)采用Ext BaseForm的 submit方法
if(centerForm.isValid()){
centerForm.submit({
method:"post",
url: '<c:out value="${path}" />/user.htm?method=userSave',
params:{
'data':Ext.encode(centerForm.getValues()), //这里后台取值 需要解析datajson字符串
'diviIds':indexFun.getAllDiviId(),
'roleIds':indexFun.getAllRoleId()
},
waitMsg:'Loading...',
failure:function(form,action){
if(action.result==null){
Ext.Msg.alert('提示',"保存失败");
}else{
Ext.Msg.alert('保存失败',action.result.info);
}
},
success: function(form,action){
yyExt.info("提示","操作成功");
}
});
}
发表评论
-
Ext文件上传、下载
2011-01-20 17:42 6371* Ext上传: ext文件上传需要扩展控件的支持: &l ... -
Ext.grid.GridPanel
2011-01-20 17:02 1132Ext.grid.GridPanel * 创建GridPan ... -
Ext.Window
2011-01-20 16:46 2332Ext.Window 1 在一个Ext web应用中,在每一 ... -
Ext布局_BorderLayout
2011-01-20 15:24 807BorderLayout布局的使用 n ... -
Ext.js浏览
2011-01-18 13:50 7951 window.undefined = window.und ... -
Ext3.2API
2011-01-18 13:39 596Ext3.2API -
Ext3.2API_中文版
2011-01-18 13:38 832Ext3.2API_中文版 -
Ext3.2API_English
2011-01-18 13:36 627Ext3.2API_English -
Ext3.2.1源码
2011-01-18 13:27 1042参见附件! -
Ext.form.DateField
2010-12-31 17:27 1277Ext.form.DateField1 自定义的日期校验类型 ... -
Ext工具条
2010-12-31 16:31 6611 在jsp指定位置(某个div处)生成工具条 jsp页面: ... -
理解Ext.extend函数
2010-12-31 13:49 620显然了,从函数名就可 ...
相关推荐
Ext Form全攻略 Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略
ext form 例子,有输入框,选择框,下拉框,复选框,日历等的复杂ExtJS例子
"Ext Form GridPanel"是Ext JS库中的一个重要组件,它结合了表格(Grid)和表单(Form)的功能,提供了一种强大而灵活的方式来显示和编辑数据。在Web应用程序开发中,这种组件常用于数据录入和展示,尤其适用于处理...
在“EXT form小例子”中,我们将探讨EXTJS Form组件的基础用法,包括客户端验证和对`Ext.form.Vtype`的扩展。 1. EXTJS Form组件基础: - 表单创建:EXTJS中的表单通常通过`Ext.create`方法创建,如`Ext.create('...
Ext Form 是 Ext JS 库中的一个关键组件,用于创建丰富的、交互式的网页表单。它在Web应用程序中扮演着至关重要的角色,允许用户输入、编辑和提交数据。本示例旨在展示如何使用 Ext Form 来构建基本的表单结构以及与...
根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...
在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...
在这个“Ext2.0 form使用实例的例程”中,我们将深入探讨Ext 2.0的表单(form)组件及其应用。 表单在任何应用程序中都扮演着至关重要的角色,用于收集和验证用户输入的数据。Ext 2.0的表单组件提供了一整套完整的...
EXT.form组件是EXT JS库中用于构建表单界面的核心组件集合。这些组件提供了一系列丰富的控件,用于创建具有不同功能的交互式表单。在EXT JS中,表单组件不仅包含基本的输入字段,还支持复杂的输入类型和验证机制。 ...
EXT form通常由`Ext.form.Panel`或者`Ext.form.FieldSet`构建,其中包含各种字段如文本框、复选框、下拉框等。每个字段都有自己的配置选项,如`fieldLabel`(字段标签)、`name`(标识符)等。通过这些配置,我们...
### Ext.form表单中各种属性应用详解 #### 1. Ext.form.NumberField **Ext.form.NumberField** 是 **Ext.form.TextField** 的一个扩展,它专为处理数字输入而设计,提供了一系列与数值相关的配置选项。 - **...
以下将详细介绍EXT中的"form"、"grid"及"高级详解"的相关知识点。 一、EXT Form EXT Form组件是用于创建复杂Web表单的强大工具。它支持多种输入类型,如文本框、密码框、下拉选择、复选框、单选按钮等,并提供了...
在本示例中,"EXT dojochina文本框示例Ext.form.TextField.rar"是一个压缩包,包含了EXT框架中关于`Ext.form.TextField`组件的示例代码。 `Ext.form.TextField`是EXT框架中的一个核心组件,用于创建基本的输入字段...
在本文中,我们将深入探讨Ext Form组件,这是Ext JS中的核心组件之一,用于创建复杂的表单界面。表单是任何Web应用中收集用户输入的关键部分,而Ext JS提供了一套完整的工具来帮助开发者创建、验证和提交表单数据。 ...
Ext 2.1提供了多种布局模式,如fit布局、border布局、form布局等,以适应不同类型的用户界面需求。布局管理器负责调整组件大小和位置,确保它们在容器中正确显示。 此外,Ext 2.1还包含一套强大的表格处理功能。Ext...
首先,理解Ext JS中的表单(Form)组件是至关重要的。表单通常由一系列字段(Fields)组成,如文本框、复选框、下拉列表等,用于用户输入数据。Ext Form提供了一种结构化的方式来组织这些字段,并提供了验证、提交和...
### EXT异步提交FORM表单知识点详解 #### 一、EXT异步提交FORM表单概述 在现代Web应用开发中,异步提交表单是一种常见的技术手段,它能够提升用户体验,减少页面刷新带来的数据丢失风险,并能有效提高系统的响应...
在EXT JS中,表单(Form)是数据输入和验证的核心组件。本文主要总结了EXT表单提交数据的三种常见方法:EXT的form表单AJAX提交、非AJAX提交以及EXT的Ajax类直接提交。 1. EXT的form表单AJAX提交(默认提交方式) ...
在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...
6. **EXT Form**:EXT的表单组件支持各种输入类型,如文本、密码、日期、下拉框等,还有表单验证功能,保证了数据的准确性和完整性。 7. **EXT Tree**:EXT的树形视图组件适用于层次结构数据的展示,可以进行展开、...