`

Ext form

阅读更多

 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>&nbsp;物料编码:</td>
   <td><input type="text" id="marcNo" style="width: 180px;"></td>
   <td>&nbsp;品名:</td>
   <td><input type="text" id="marcName" style="width: 100px"></td>
   <td>&nbsp;创建时间:</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>&nbsp;物料描述:</td>
   <td><input type="text"  id="marcDesc" style="width: 180px"></td>
   <td>&nbsp;状态:</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>&nbsp;类别:</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 Form全攻略

    Ext Form全攻略 Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略Ext Form全攻略

    ext form 例子

    ext form 例子,有输入框,选择框,下拉框,复选框,日历等的复杂ExtJS例子

    ext form gridpanel

    "Ext Form GridPanel"是Ext JS库中的一个重要组件,它结合了表格(Grid)和表单(Form)的功能,提供了一种强大而灵活的方式来显示和编辑数据。在Web应用程序开发中,这种组件常用于数据录入和展示,尤其适用于处理...

    ext form小例子

    在“EXT form小例子”中,我们将探讨EXTJS Form组件的基础用法,包括客户端验证和对`Ext.form.Vtype`的扩展。 1. EXTJS Form组件基础: - 表单创建:EXTJS中的表单通常通过`Ext.create`方法创建,如`Ext.create('...

    Ext Form 示例

    Ext Form 是 Ext JS 库中的一个关键组件,用于创建丰富的、交互式的网页表单。它在Web应用程序中扮演着至关重要的角色,允许用户输入、编辑和提交数据。本示例旨在展示如何使用 Ext Form 来构建基本的表单结构以及与...

    Ext 添加功能form表单实例

    根据给定的信息,本文将详细解释“Ext 添加功能form表单实例”的知识点,这主要针对Ext初学者。本文会从创建表单、字段定义、验证规则以及提交逻辑等方面进行深入探讨。 ### Ext 添加功能form表单实例 #### 表单...

    Ext form_load

    在Ext JS中,`Ext.form_load`涉及到的主要知识点是FormPanel的数据加载机制,这包括了对FormPanel的form对象、BasicForm、doAction方法、Ext.form.Action对象以及JsonReader的使用。以下是对这些概念的详细解释: 1...

    Ext2.0 form使用实例的例程

    在这个“Ext2.0 form使用实例的例程”中,我们将深入探讨Ext 2.0的表单(form)组件及其应用。 表单在任何应用程序中都扮演着至关重要的角色,用于收集和验证用户输入的数据。Ext 2.0的表单组件提供了一整套完整的...

    EXT.form组件

    EXT.form组件是EXT JS库中用于构建表单界面的核心组件集合。这些组件提供了一系列丰富的控件,用于创建具有不同功能的交互式表单。在EXT JS中,表单组件不仅包含基本的输入字段,还支持复杂的输入类型和验证机制。 ...

    EXT制作的FORM,可以与Servlet进行交互

    EXT form通常由`Ext.form.Panel`或者`Ext.form.FieldSet`构建,其中包含各种字段如文本框、复选框、下拉框等。每个字段都有自己的配置选项,如`fieldLabel`(字段标签)、`name`(标识符)等。通过这些配置,我们...

    Ext.form表单中各种属性应用详解

    ### Ext.form表单中各种属性应用详解 #### 1. Ext.form.NumberField **Ext.form.NumberField** 是 **Ext.form.TextField** 的一个扩展,它专为处理数字输入而设计,提供了一系列与数值相关的配置选项。 - **...

    ext文档 和实例

    以下将详细介绍EXT中的"form"、"grid"及"高级详解"的相关知识点。 一、EXT Form EXT Form组件是用于创建复杂Web表单的强大工具。它支持多种输入类型,如文本框、密码框、下拉选择、复选框、单选按钮等,并提供了...

    EXT dojochina文本框示例Ext.form.TextField.rar

    在本示例中,"EXT dojochina文本框示例Ext.form.TextField.rar"是一个压缩包,包含了EXT框架中关于`Ext.form.TextField`组件的示例代码。 `Ext.form.TextField`是EXT框架中的一个核心组件,用于创建基本的输入字段...

    ext 的ppt ext 的ppt ext 的pptext 的pptext 的ppt

    在本文中,我们将深入探讨Ext Form组件,这是Ext JS中的核心组件之一,用于创建复杂的表单界面。表单是任何Web应用中收集用户输入的关键部分,而Ext JS提供了一套完整的工具来帮助开发者创建、验证和提交表单数据。 ...

    Ext-2.1 Ext 2全文档

    Ext 2.1提供了多种布局模式,如fit布局、border布局、form布局等,以适应不同类型的用户界面需求。布局管理器负责调整组件大小和位置,确保它们在容器中正确显示。 此外,Ext 2.1还包含一套强大的表格处理功能。Ext...

    Ext 动态加载表单数据

    首先,理解Ext JS中的表单(Form)组件是至关重要的。表单通常由一系列字段(Fields)组成,如文本框、复选框、下拉列表等,用于用户输入数据。Ext Form提供了一种结构化的方式来组织这些字段,并提供了验证、提交和...

    EXT异步提交FORM表单

    ### EXT异步提交FORM表单知识点详解 #### 一、EXT异步提交FORM表单概述 在现代Web应用开发中,异步提交表单是一种常见的技术手段,它能够提升用户体验,减少页面刷新带来的数据丢失风险,并能有效提高系统的响应...

    ext form 表单提交数据的方法小结

    在EXT JS中,表单(Form)是数据输入和验证的核心组件。本文主要总结了EXT表单提交数据的三种常见方法:EXT的form表单AJAX提交、非AJAX提交以及EXT的Ajax类直接提交。 1. EXT的form表单AJAX提交(默认提交方式) ...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    ext培训文档doc

    6. **EXT Form**:EXT的表单组件支持各种输入类型,如文本、密码、日期、下拉框等,还有表单验证功能,保证了数据的准确性和完整性。 7. **EXT Tree**:EXT的树形视图组件适用于层次结构数据的展示,可以进行展开、...

Global site tag (gtag.js) - Google Analytics