`

Extjs的Form表单提交方式

阅读更多

Extjs的Form表单提交方式

一.直接提交:url写在表单中

var addForm = new Ext.FormPanel({
	frame: true,
	url:"insertProject.eva?doType=insertProject",
	labelWidth: 80,
	//labelAlign: "right",
	//buttonAlign:"center",
	items:[
		xmmcCombox,
		{	
			name:"xmdw",
			xtype:"textfield",
			fieldLabel:"项目单位",
			readOnly:true,
			width:200
		},{
			name:"depart",
			xtype:"textfield",
			fieldLabel:"主管部门",
			readOnly:true,
			width:200
		},
		typeRadio,
		modeRadio,
		agencyRadio
	],
	buttons:[
		{
			text:"确认",
			handler:function(){
				addForm.getForm().submit({
					method:"POST",
					waitMsg:"保存中,请稍后..."
				});
				addWin.hide();
			}
		},{
			text:"取消",
			handler:function(){
				addWin.hide();
			}
		}
	]
});

 

二.在submit()方法中获取参数值,设置URL,并提交

var addForm = new Ext.FormPanel({
	frame: true,
	labelWidth: 80,
	//labelAlign: "right",
	//buttonAlign:"center",
	items:[
		xmmcCombox,
		{	
			name:"xmdw",
			xtype:"textfield",
			fieldLabel:"项目单位",
			readOnly:true,
			width:200
		},{
			name:"depart",
			xtype:"textfield",
			fieldLabel:"主管部门",
			readOnly:true,
			width:200
		},
		typeRadio,
		modeRadio,
		agencyRadio
	],
	buttons:[
		{
			text:"确认",
			handler:function(){
				var thisForm = addForm.getForm();
				if(thisForm.isValid()){
					var submitValues = thisForm.getValues();
                    //提交表单
                    thisForm.submit({
                    	url:"insertProject.eva?doType=insertProject",
                    	method:"POST",
                    	waitMsg:"保存中,请稍后...",
                    	params:submitValues,
                    	success:function(){
                    		Ext.Msg.alert('成功', "增加了一个新的项目绩效信息!");
		            		addWin.hide();
                    	},
                    	failure:function(form,action){
                    		Ext.Msg.alert('失败', "保存项目绩效信息失败!");
                    	}
                    });
				}
				addWin.hide();
			}
		},{
			text:"取消",
			handler:function(){
				addWin.hide();
			}
		}
	]
});

注意查看url的位置区别!

 

实例分析:

1.ExtJs前端代码提交表单:

/**
 * -----------------------------------------
 * ======点击下拉按钮获取项目名称,项目单位,主管部门======
 * -----------------------------------------
 */
/*-----1.创建数据源-----*/
var xmmcStore = new Ext.data.Store({
	proxy:	new Ext.data.HttpProxy({
				url:'getXmmc.eva?doType=getXmmc'
			}),
    reader: new Ext.data.JsonReader(
    		{root: 'data'},
    		['id','name']
    )
});

/*-----2.创建项目名称下拉列表-----*/
var xmmcCombox = new Ext.form.ComboBox({
	fieldLabel:"项目名称",
	store:xmmcStore,
	displayField:"name",
	valueField:"id",
	hiddenName:"projectId",
	triggerAction:"all",
	emptyText:"请选择",
	editable:false,
	listeners:{
		/*"expand":function(){
			xmmcStore.load();
		},*/
		"select":function(obj, record){
			itemStore.baseParams.xmid = record.get('id');
			itemStore.load();
		}
	}
});
/*-----3.创建获取单位和主管部门数据源-----*/
var itemProxy = new Ext.data.HttpProxy({
	url:"getItem.eva?doType=getItem"
});
var itemReader = new Ext.data.JsonReader(
	{root:"data"},
	["company","department"]
);
var itemStore = new Ext.data.Store({
	proxy:itemProxy,
	reader:itemReader
});
//加载Store,并将数据赋值到文本框
itemStore.on('load', function (store, record, options) {
	var comp = record[0].get("company");
	var dept = record[0].data.department;
	addForm.getForm().findField("xmdw").setValue(comp);
	addForm.getForm().findField("depart").setValue(dept);
});

/**
 * --------------------
 * ======增加项目窗口======
 * --------------------
 */
/*-----1.创建单选框按钮组-----*/
//评价类型单选框
var typeRadio = new Ext.form.RadioGroup({
	fieldLabel:"评价类型",
	items:[{
		layout: 'column',
		items: [
			{
				name:"etype",
				inputValue:"1",
				boxLabel:"事前评价",
				checked:true,
				width:100
			},{
				name:"etype",
				inputValue:"2",
				boxLabel:"事中评价",
				width:100
			},{
				name:"etype",
				inputValue:"3",
				boxLabel:"事后评价",
				width:100
			}
		]
	}]
});
//评价方式单选框
var modeRadio = new Ext.form.RadioGroup({
	fieldLabel:"评价方式",
	items:[{
		layout:"column",
		items:[
			{
				name:"emode",
				inputValue:"1",
				boxLabel:"单位绩效自评",
				checked:true,
				width:100
			},{
				name:"emode",
				inputValue:"2",
				boxLabel:"财政部门组织评价",
				width:100
			}
		]
	}]
});
//评价机构单选框
var agencyRadio = new Ext.form.RadioGroup({
	fieldLabel:"评价机构",
	items:[{
		layout:"column",
		items:[
			{
				name:"eagency",
				inputValue:"1",
				boxLabel:"中介机构",
				checked:true,
				width:100
			},{
				name:"eagency",
				inputValue:"2",
				boxLabel:"单位评价组",
				width:100
			},{
				name:"eagency",
				inputValue:"3",
				boxLabel:"财政评价组",
				width:100
			}
		]
	}]
});
/*-----2.创建表单-----*/
var addForm = new Ext.FormPanel({
	frame: true,
	labelWidth: 80,
	//labelAlign: "right",
	//buttonAlign:"center",
	items:[
		xmmcCombox,
		{	
			name:"xmdw",
			xtype:"textfield",
			fieldLabel:"项目单位",
			readOnly:true,
			width:200
		},{
			name:"depart",
			xtype:"textfield",
			fieldLabel:"主管部门",
			readOnly:true,
			width:200
		},
		typeRadio,
		modeRadio,
		agencyRadio
	],
	buttons:[
		{
			text:"确认",
			handler:function(){
				var thisForm = addForm.getForm();
				if(thisForm.isValid()){
					var submitValues = thisForm.getValues();
                    //提交表单
                    thisForm.submit({
                    	url:"insertProject.eva?doType=insertProject",
                    	method:"POST",
                    	waitMsg:"保存中,请稍后...",
                    	params:submitValues,
                    	success:function(){
                    		Ext.Msg.alert('成功', "增加了一个新的项目绩效信息!");
		            		addWin.hide();
                    	},
                    	failure:function(form,action){
                    		Ext.Msg.alert('失败', "保存项目绩效信息失败!");
                    	}
                    });
				}
				addWin.hide();
			}
		},{
			text:"取消",
			handler:function(){
				addWin.hide();
			}
		}
	]
});

/*-----3.创建窗口-----*/
var addWin = new Ext.Window({
	title:"增加任务",
	layout:"fit",
	height:280,
	closeAction:"hide",
	width:350,
	items:addForm
});

需要注意的参数名:

1.ComboBox:hiddenName:"projectId"---valueField:"id"

2.Textfield:name---value(store赋值的value)

3.Radio:name---inputValue

 

2.Java后台代码获取提交的表单数据:

else if ("insertProject".equals(action)) {
	int projectId = Integer.valueOf(request.getParameter("projectId"));
	String company = request.getParameter("xmdw");
	String department = request.getParameter("depart");
	int etype = Integer.valueOf(request.getParameter("etype"));
	int emode = Integer.valueOf(request.getParameter("emode"));
	int eagency = Integer.valueOf(request.getParameter("eagency"));
}

 

 

分享到:
评论

相关推荐

    ExtJs4.0 表单提交Demo

    在“ExtJs4.0 表单提交Demo”中,我们将深入探讨如何在ExtJs 4.0环境下,通过Ext Ajax模块实现表单的数据提交,同时实现显示层和控制层的分离,提升代码的可维护性和可扩展性。 1. **ExtJs 4.0 表单基础** ExtJs ...

    ExtJs 动态添加表单

    console.log('表单提交', action.result); }); ``` 5. **动态移除字段**: 当需要移除某个字段时,可以使用`remove`方法: ```javascript formPanel.remove(textField); formPanel.doLayout(); ``` 6. **...

    ExtJs获取表单元素的值

    在ExtJs中,可以通过多种方式获取表单元素的值。最常见的方法之一就是使用`getValues()`函数。此函数返回一个包含所有表单字段值的对象。下面通过具体的例子来详细了解这个过程: #### 2.1 使用`getValues()` 假设...

    extjs表单提交例子

    保存提交代码,extjs4.0 // 重置 和 保存 按钮. buttons: [{ text: '重置', handler: function() { this.up('form').getForm().reset(); } }, { text: '保存', /*formBind: true, //only enabled once the ...

    解决Extjs4中form表单提交后无法进入success函数问题

    在开发使用Extjs4框架的应用程序时,可能会遇到form表单提交后,无法正确进入success回调函数的问题。针对这个问题,首先需要进行两个方面的检查和确认,以确保form提交操作能够顺利进入success回调函数。 首先,...

    Extjs优化(二)Form表单提交通用实现

    在本文中,我们将深入探讨如何优化EXTJS中的Form表单提交过程,特别是在EXTJS应用程序中。EXTJS是一个强大的JavaScript框架,用于构建富客户端Web应用程序,而表单提交是任何应用程序中不可或缺的部分。优化这一过程...

    learning extjs 中文版 表单提交

    四、表单提交方式 EXTJS表单支持两种主要的提交方式:异步(Ajax)提交和传统(Standard)提交。异步提交是EXTJS常用的提交方式,通过Ajax发送JSON或URL编码的数据到服务器,无须页面刷新,能实现更好的用户体验。...

    如何提交Extjs 中的表单

    这个方法会接收到ExtJS表单提交的数据,并根据业务逻辑进行处理。返回的字符串将作为`action.result.message`显示在前端。 总的来说,提交ExtJS表单涉及前端的表单构建、事件监听以及后端的接收和处理。确保前后端...

    extjs-form组件配置参数详解

    `Ext.form.Action`是ExtJS中的一个类,用于处理表单提交和加载数据的动作。它提供了多种配置选项和属性来控制表单操作的过程。 **配置项** - **success**: 执行成功后的回调函数,该函数接收两个参数:`form`(当前...

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

    `Ext.form.Panel`是Extjs4提供的一个用于创建复杂表单的组件。它允许开发者构建包含多个输入字段、按钮以及其他交互元素的表单,并且提供了大量的功能来帮助处理表单数据,如验证、提交以及数据绑定等。 ### 二、...

    ExtJS的表单

    ExtJS的表单使用FormPanel容器 表单使用的布局方式:form和formtable布局 ExtJS的表单和html的form标签是相似的,新建一个FormPanel实际上就是新建一个html的form标签,只是添加许多Ext的样式而已

    extjs动态表单

    5. **事件监听**:设置事件监听器来处理用户交互,如表单提交、字段变化等。 6. **渲染和显示**:将表单渲染到页面上,让用户可以操作。 从提供的标签“源码”和“工具”来看,可能包含的资源kk.doc可能是一个示例...

    Extjs验证表单 Extjs验证表单

    本文将深入探讨Extjs中的表单验证机制,包括错误信息提示方式、内置验证属性、Vtype验证以及自定义验证方法。 #### 二、Extjs 错误信息提示方式 在进行任何形式的验证之前,首先需要配置错误信息的提示方式。Extjs...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    extjs四种异步提交

    这里提到了EXTJS的四种异步提交方式,分别是基于EXT JS的Ajax方法、指定HTML表单的Ajax提交、EXT JS自定义表单的提交以及使用Action配置的提交。下面将详细解释这四种方式: 1. **基于EXT JS的Ajax方法**: 在`...

    ExtJs中表单formPanel的横向布局

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

    extjs4 入门基础,form、grid、tree

    表单数据的提交和验证可通过`submit`方法实现。 **二、网格(Grid)** 网格是展示和操作大量结构化数据的利器。在ExtJS中,`Ext.grid.Panel`是创建网格的主要组件。你可以通过`columns`配置定义列,每列由一个对象...

Global site tag (gtag.js) - Google Analytics