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: .3,
                            labelWidth:65,
                            name: ‘userName‘
                        }, {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘工号‘,
                            columnWidth: .3,
                            labelWidth: 65,
                            labelAlign: ‘right‘,
                            name: ‘workNum‘
                        }, {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘部门‘,
                            labelAlign: ‘right‘,
                            columnWidth: .3,
                            labelWidth: 65,
                            name: ‘department‘
                        }
                    ]
                },
                {
                    xtype: ‘form‘,
                    border: false,
                    id: ‘formR2‘,
                    layout: ‘column‘,
                    bodyStyle: ‘padding-bottom:10px;‘,
                    items: [
                        {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘电话号‘,
                            labelAlign: ‘right‘,
                            columnWidth: .3,
                            labelWidth: 65,
                            name: ‘phone‘
                        }, {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘职位‘,
                            columnWidth: .3,
                            labelWidth: 65,
                            labelAlign: ‘right‘,
                            name: ‘position‘
                        }, {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘微信号‘,
                            labelAlign: ‘right‘,
                            columnWidth: .3,
                            labelWidth: 65,
                            name: ‘WeiXin‘
                        }
                    ]
                }, {
                    xtype: ‘form‘,
                    id: ‘formR3‘,
                    border: false,
                    layout: ‘column‘,
                    items: [
                        {
                            xtype: ‘combo‘,
                            fieldLabel: ‘性别‘,
                            //width:245,
                            columnWidth: .3,
                            labelAlign: ‘right‘,
                            labelWidth: 65,
                            editable: false,
                            emptyText: ‘--请选择--‘,
                            store: genderStore,
                            queryMode: ‘local‘,
                            displayField: ‘Name‘,
                            valueField: ‘Value‘,
                            name: ‘sex‘
                        }, {
                            xtype: ‘textfield‘,
                            fieldLabel: ‘通信地址‘,
                            labelAlign: ‘right‘,
                            columnWidth: .6,
                            labelWidth: 65,
                            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#语言开发

 1  public ActionResult HandlerRoleAdd()
 2         {
 3               try
 4                 {
 5                    //获取前台传过来的参数
 6                         string userName = string.Empty;
 7             if (Request["userName"] != null)
 8             {
 9                 userName = Request["userName"].ToString();
10             }
11             string workNum = string.Empty;
12             if (Request["workNum"] != null)
13             {
14                 workNum = Request["workNum"].ToString();
15             }
16             string department = string.Empty;
17             if (Request["department"] != null)
18             {
19                 department = Request["department"].ToString();
20             }
21
22             string phone = string.Empty;
23             if (Request["phone"] != null)
24             {
25                 phone = Request["phone"].ToString();
26             }
27
28             string position = string.Empty;
29             if (Request["position"] != null)
30             {
31                 position = Request["position"].ToString();
32             }
33
34             string WeiXin = string.Empty;
35             if (Request["WeiXin"] != null)
36             {
37                 WeiXin = Request["WeiXin"].ToString();
38             }
39
40             string sex = string.Empty;
41             if (Request["sex"] != null)
42             {
43                 sex = Request["sex"].ToString();
44             }
45
46
47             string UserAddress = string.Empty;
48             if (Request["UserAddress"] != null)
49             {
50                 UserAddress = Request["UserAddress"].ToString();
51             }
52
53
54                     string str =string.empty;
55                      //
56                      //具体业务逻辑
57                      //
58
59                     if (string.IsNullOrEmpty(str))
60                     {
61                         result.success = false;
62                         result.msg = "失败";
63                     }
64                     else
65                     {
66                             result.success = true;
67                             result.msg = "成功";
68
69                     }
70
71                 }
72                 catch(Exception ex)
73                 {
74
75                     result.success = false;
76                     result.msg = ex.Message;
77
78                 }
79                 finally
80                 {
81
82                 }
83
84             return Json(result,JsonRequestBehavior.DenyGet);
85         }

4、结束语

我写的语言可能不优美,示例方法也可能不是很完美,但是我保证是完整的。最后希望这篇博文能够帮助你!

时间: 2024-08-05 02:12:33

Extjs form 表单的 submit的相关文章

form表单,submit切换提交

有时候会遇到用form表单提交数据的情况,还有再同一表单下提交两种信息,就比如说,四个input,都在一个表单里,submit有两个,一个是登陆,一个是注册,这时候我们就需要去验证,我点的是什么要往注册还是登陆里提交.表单代码如下. <form action="login.do" name="form1" > <div class="login-hidd"></div> <div class="

ExtJS form表单常用元素操作

Ext.onReady(function() {Ext.apply(Ext.form.VTypes, {dateRange : function(val, field) {var beginDate = null;var endDate = null;if (field.dateRange) {var beginId = field.dateRange.begin;this.beginField = Ext.getCmp(beginId);var endId = field.dateRange.

form表单,submit,ajax提交

尼玛... 一个简单的表单提交,竟然给我整的直郁闷. 本来就是个保存功能,几个前人都用的ajax提交,我也就没改成submit.然后坑爹的就来了. 我在表单里写了个<form></form>(实际用ajax提交,也没必要写这个标签,但是我就是写了.而action属性是个空) 保存钮的标签是个button..但是type并没指定是submit 这尼玛梦魇就来了,保存倒是好使.但是回调函数后的跳转location.href时而好使时而不好使..TMD我调查这个给我累够呛,两天没睡踏实.

分享form表单提交问题

前段时间做了一个form表单传值问题  当时觉得form表单的submit不就是提交form表单name的value值吗 ? 其实是对的  但是我做的是一个打印页面  需要把当前页面的元素传入下一个url  我当时就郁闷了 怎么传都过不去 无意中发现这些表单元素 属性都是都是disable  然后我再复制一下这些表单元素  这次没有加disable  就传过去了 小小问题 java新手  分享一下

javascprit form表单提交前验证以及ajax返回json

1.今天要做一个手机验证码验证的功能.需求是前端页面点击发送 短信验证码,后台接收后通过ajax返回到前端,之后前端在提交时候进行验证.思路很简单,不过做的过程还是学到不少的东西. 1.ajax请求后返回 returning 405 Method Not Allowed 原因是我后台返回的时候没有加上: @ResponseBody注解.加上后返回的数据是json字符串,但是js只能操作json对象.需要把json字符串转为json对象.一般的有三种方式1.JSON.parse();如 var j

ExtJs如何判断form表单是否被修改过详解

1.Extjs表单提交主要有三种方式: 1, EXT的form表单ajax提交(默认提交方式)      相对单独的ajax提交来说优点在于能省略写参数数组 ,form.getForm().submit 3.EXT的ajax提交,Ext.Ajax.request 2.EXT表单的非ajax提交 在我看来:采用第1,2种都很方便,关键是Ext.Ajax.request传递给后台是一个字符串形式的,需要Jason解析 2.记录代码问题: 1 SaveStudentDetails:function(b

extjs中form表单提交成功、失败的响应信息

类Ext.form.Action.Submit 处理表单Form数据和返回的response对象的类. 该类的实例仅在表单Form{@link Ext.form.BasicForm#submit 提交}的时候创建. 返回的数据包必须包含一个 boolean 类型的success属性,还有可选地,一个含有无效字段的错误信息的属性 A response packet may contain: ·        success property : Boolean - required. ·     

form表单提交的两种方式 button和submit的使用方法

1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){   var result = document.getElementById("userid").value;   var password = document.getElementById("userpass

form表单的两种提交方式,submit和button的用法

一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){   var result = document.getElementById("userid").value;   var password = document.getElementById("userpassid").value;   if(result == ""  ){     alert(