Extjs form 表单的 submit
说明:extjs form表单的提交方式是多种多样的,本文只是介绍其中的一种方法,本文介绍的方法可能不是完美的,但是对于一般的应用应该是没有问题的。 本文包括的主要内容有:form面板设计、form字段值的获取、后台处理代码以及返回数据的获取
1、form表单设计
 var  panelItem = Ext.create('Ext.form.Panel', {
            border: false,
            id:'formMain',
            layout: 'form',
            items: [
                  {
                    xtype: 'form',
                    border: false,
                    layout: 'column',
                    id:'formR1',
                    bodyStyle: 'padding-bottom:10px;',
                    items: [
                        {
                            xtype: 'textfield',
                            fieldLabel: '用户名',
                            labelAlign: 'right',
                            columnWidth: .,
                            labelWidth:,
                            name: 'userName'
                        }, {
                            xtype: 'textfield',
                            fieldLabel: '工号',
                            columnWidth: .,
                            labelWidth: ,
                            labelAlign: 'right',
                            name: 'workNum'
                        }, {
                            xtype: 'textfield',
                            fieldLabel: '部门',
                            labelAlign: 'right',
                            columnWidth: .,
                            labelWidth: ,
                            name: 'department'
                        }
                    ]
                },
                {
                    xtype: 'form',
                    border: false,
                    id: 'formR2',
                    layout: 'column',
                    bodyStyle: 'padding-bottom:10px;',
                    items: [
                        {
                            xtype: 'textfield',
                            fieldLabel: '电话号',
                            labelAlign: 'right',
                            columnWidth: .,
                            labelWidth: ,
                            name: 'phone'
                        }, {
                            xtype: 'textfield',
                            fieldLabel: '职位',
                            columnWidth: .,
                            labelWidth: ,
                            labelAlign: 'right',
                            name: 'position'
                        }, {
                            xtype: 'textfield',
                            fieldLabel: '微信号',
                            labelAlign: 'right',
                            columnWidth: .,
                            labelWidth: ,
                            name: 'WeiXin'
                        }
                    ]
                }, {
                    xtype: 'form',
                    id: 'formR3',
                    border: false,
                    layout: 'column',
                    items: [
                        {
                            xtype: 'combo',
                            fieldLabel: '性别',
                            //width:245,
                            columnWidth: .,
                            labelAlign: 'right',
                            labelWidth: ,
                            editable: false,
                            emptyText: '--请选择--',
                            store: genderStore,
                            queryMode: 'local',
                            displayField: 'Name',
                            valueField: 'Value',
                            name: 'sex'
                        }, {
                            xtype: 'textfield',
                            fieldLabel: '通信地址',
                            labelAlign: 'right',
                            columnWidth: .,
                            labelWidth: ,
                            name: 'UserAddress'
                        }
                    ]
                }
            ],
          buttons:
                  [
                    {
                        text: '保存',
                        formBind: true,//这一句代码就是把button和form表单绑定在一起
                        handler: function (btn) {
                           Ext.getCmp('formMain').getForm().submit({
                                    method: 'POST',
                                    params: {
                                        //怎么获取form字段的值
                                        userName:  Ext.getCmp('formMain').getForm().findField('userName').getValue();//
                                        workNum = Ext.getCmp('formMain').getForm().findField('workNum').getValue();
                                        department = Ext.getCmp('formMain').getForm().findField('department').getValue();
                                        phone = Ext.getCmp('formMain').getForm().findField('phone').getValue();
                                        position = Ext.getCmp('formMain').getForm().findField('position').getValue();
                                        WeiXin = Ext.getCmp('formMain').getForm().findField('WeiXin').getValue();
                                        sex = Ext.getCmp('formMain').getForm().findField('sex').getValue();
                                        UserAddress = Ext.getCmp('formMain').getForm().findField('UserAddress').getValue();
                                            },
                                    url: 'Home/HandlerRoleAdd',
                                    waitMsg: '请稍等,正在添加',
                                    success: function (form, action) {
                                        if(action.result.success) {
                                          Ext.getCmp('formMain').getForm().reset();//form表单重置
                                            Ext.MessageBox.alert('提示', '添加成功!');
                                          //可以根据返回结果,做进一步的处理
                                           // btn.ownerCt.close();这一句的作用是,如果把上面定义的form对象作为某个窗体的item,就是关闭该窗体
                                        }
                                        else {
                                            Ext.MessageBox.alert('提示', action.result.msg);
                                        }
                                    },
                                    failure: function (form, action) {
                                        Ext.MessageBox.alert('提示', action.result.msg);
                                    }
                                });
                        }
                    },
           {
            text: '重置',
            handler: function () {
                  Ext.getCmp('formMain').getForm().reset();//form表单重置
            }
        }]
        });
2、form表单中combox控件所需的store
var genderStore = Ext.create("Ext.data.Store", {
            fields: ["Name", "Value"],
            data: [
                { Name: "男", Value: 1 },
                { Name: "女", Value: 2 }
            ]
        });
3、后台代码及返回值结构等
后台是asp.net mvc c#语言开发
public ActionResult HandlerRoleAdd()
{
try
{
//获取前台传过来的参数
string userName = string.Empty;
if (Request["userName"] != null)
{
userName = Request["userName"].ToString();
}
string workNum = string.Empty;
if (Request["workNum"] != null)
{
workNum = Request["workNum"].ToString();
}
string department = string.Empty;
if (Request["department"] != null)
{
department = Request["department"].ToString();
} string phone = string.Empty;
if (Request["phone"] != null)
{
phone = Request["phone"].ToString();
} string position = string.Empty;
if (Request["position"] != null)
{
position = Request["position"].ToString();
} string WeiXin = string.Empty;
if (Request["WeiXin"] != null)
{
WeiXin = Request["WeiXin"].ToString();
} string sex = string.Empty;
if (Request["sex"] != null)
{
sex = Request["sex"].ToString();
} string UserAddress = string.Empty;
if (Request["UserAddress"] != null)
{
UserAddress = Request["UserAddress"].ToString();
} string str =string.empty;
//
//具体业务逻辑
// if (string.IsNullOrEmpty(str))
{
result.success = false;
result.msg = "失败";
}
else
{
result.success = true;
result.msg = "成功"; } }
catch(Exception ex)
{ result.success = false;
result.msg = ex.Message; }
finally
{ } return Json(result,JsonRequestBehavior.DenyGet);
}
4、结束语
我写的语言可能不优美,示例方法也可能不是很完美,但是我保证是完整的。最后希望这篇博文能够帮助你!
Extjs form 表单的 submit的更多相关文章
- 使用ajax实现form表单的submit事件
		需求:如题,需要在登录页面使用ajax提交请求,并在本页面返回请求信息. 主要部分jS如下: //提交表单$("#loginForm").submit(function(){ va ... 
- form表单,submit,ajax提交
		尼玛... 一个简单的表单提交,竟然给我整的直郁闷. 本来就是个保存功能,几个前人都用的ajax提交,我也就没改成submit.然后坑爹的就来了. 我在表单里写了个<form></f ... 
- 分享form表单提交问题
		前段时间做了一个form表单传值问题 当时觉得form表单的submit不就是提交form表单name的value值吗 ? 其实是对的 但是我做的是一个打印页面 需要把当前页面的元素传入下一个u ... 
- Form表单三种提交按钮的区别?
		1.<input type='button' id='btn' onclick='check()' value="提交"> 说明:只是普通的按钮(不附带提交功能),不会 ... 
- javascprit form表单提交前验证以及ajax返回json
		1.今天要做一个手机验证码验证的功能.需求是前端页面点击发送 短信验证码,后台接收后通过ajax返回到前端,之后前端在提交时候进行验证.思路很简单,不过做的过程还是学到不少的东西. 1.ajax请求后 ... 
- form表单提交三种方式,demo实例详解
		第一种:使用type=submit 可以直接提交 <html> <head> <title>submit直接提交</title> </head& ... 
- ExtJs如何判断form表单是否被修改过详解
		1.Extjs表单提交主要有三种方式: 1, EXT的form表单ajax提交(默认提交方式) 相对单独的ajax提交来说优点在于能省略写参数数组 ,form.getForm().submi ... 
- [原创]java WEB学习笔记62:Struts2学习之路--表单标签:form,表单标签的属性,textfield, password, hidden,submit ,textarea ,checkbox ,list, listKey 和 listValue 属性,select ,optiongroup ,checkboxlist
		本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ... 
- form表单的两种提交方式,submit和button的用法
		1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的 ... 
随机推荐
- Opus 和 AAC 声音编码格式
			Opus编码器 是一个有损声音编码的格式,由互联网工程任务组(IETF)近来开发,适用于网络上的实时声音传输,标准格式为RFC 6716.Opus 格式是一个开放格式,使用上没有任何专利或限制. Op ... 
- git超详细教程【转】
			转自:http://blog.csdn.net/liuwengai/article/details/52072344 GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流 ... 
- 系统虚拟内存的理解 转载自http://blog.csdn.net/do2jiang/article/details/4690967
			在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制. 一 早期的内存分配机制 在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序 ... 
- js-(19,999,999.00)
			function price(n, precision) { let s = String(n), int = parseInt(n).toString(), pre = s.split('.')[1 ... 
- 如何快速定位TempDB产生问题
			步骤1.TempDB压力诊断 等待类型诊断 TempDB的争用压力在等待篇中已经简单介绍,等待的表现为 pagelatch_类等待,等待的资源是 “2: X :X ” tempDB所在磁盘的响应时间 ... 
- ASP.NET MVC Identity 使用自己的SQL Server数据库
			之前在网上看到的一篇后来找不到了,现在自己记录一下. 1.在web.config中添加一个数据库连接. <add name="dataContext" connectionS ... 
- CDOJ 879 摩天轮 dp+斜率优化
			原题链接:http://www.acm.uestc.edu.cn/#/problem/show/879 题意: 中文题 题解: 这是一道斜率dp的题. 先把$a$数组排个序. 令$dp[i][j]$表 ... 
- SRM1153
			SRM 711 DIV1 <br > 250 ConsecutiveOnes 位数不会很多,直接暴枚 直接在\(n\)的基础上修改,暴枚修改的区间,显然,位置先于暴力修改区间的位置不需要改 ... 
- man
			Description n间房子高度不同,Man 要从最矮的房子按照高度顺序跳到最高的房子,你知道房子的顺序,以及Man一次最远可以跳多远,相邻的房子至少有1的距离,房子的宽不计,现在由你安排相邻房子 ... 
- 了解使用Android ConstraintLayout
			说明 Google I/O 2016 上发布了 ConstraintLayout, 简直是要变革 Android 写界面方式. 于是第二天我立即找到相关文档尝试, 这是官方提供的 Codelab 项目 ... 
