`

FormPanel的使用方法

阅读更多

FormPanelTest.html

 

 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>FormTest</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../ext-all.js"></script>

 

<script language="javascript" type="text/javascript">


Ext.onReady(function(){
 function checkNameFn(v,o){/*这个validation方法是修改后的,Ext2.0中不支持参数o*/
  function successFn(v,p){
   if(!eval(v.responseText)){
    o.markInvalid();
   };
   
  };
  function failureFn(v,p){
   o.markInvalid();
  };

  Ext.Ajax.request({
     url: 'http://127.0.0.1:8080/CsssWeb/checker.jsp',
     success: successFn,
     failure: failureFn,
     params: { checkValue: v }
  });
  return true;
 }
 
 var nameField = new Ext.form.NumberField({
  fieldLabel : 'ID',
  name: 'numField',
  width : 120,
  value : 0,
  validationEvent : 'onblur',
  allowBlank : false
 });
 var nameField1 = new Ext.form.TextField({
  fieldLabel : '名称',
  name: 'nameField',
  width : 120,
  allowBlank : false,
  validationEvent : 'onblur',
  validator : checkNameFn
 });
 
 var formPanel=new Ext.form.FormPanel({
        labelWidth: 75, // label settings here cascade unless overridden
        frame:true,
        title: 'Simple Form',
        bodyStyle:'padding:10px 10px 10px',
  labelAlign : 'right',
        width: 350,
        defaults: {width: 230},
  items : [
   nameField,
   nameField1
  ],
  buttonAlign : 'center',
  buttons: [
   {
    text : '提交',
    listeners : {
     click : function(){formPanel.getForm().doAction('submit',{
         url:'http://127.0.0.1:7001/CsssWeb/jsonData.jsp',
         waitMsg:'Saving Data...',
         clientValidation : false
        });
       }
    }
   },
   {
    text : '重填',
    listeners : {
     click : function(){formPanel.getForm().getEl().dom.reset();}
    }
   }
  ]

 });
 formPanel.render(Ext.getBody());
 
});

</script>
</head>

<body>

 

</body>

</html>

 

 

 

checker.jsp

 

<%=true|false%>

可以在此Jsp中加入判断逻辑最后返回 true|false。

JsonData.jsp

返回Json数据,数据格式如下

{
 success : false|false,
 errors  : {
  nameField: "Client not found",
  numField: "Client not found"
 }|null
}

 

 

分享到:
评论

相关推荐

    extjs中的formPanel以及表单的应用

    对于更复杂的需求,如动态添加或删除表单字段,FormPanel 提供了`add`和`remove`方法。同时,`loadRecord`方法可以用来从记录对象中加载表单数据,而`getValues`和`getRecord`则用于获取当前表单的值或转换为记录...

    FormPanel的插入与删除

    - 使用`add()`方法将字段添加到FormPanel的布局中。布局管理器(如Fit布局或Table布局)会负责在界面上正确地显示新字段。 - 更新表单布局,确保新字段的位置和大小得到正确处理。 - 如果需要,可以调用`doLayout...

    自我扩展FormPanel 和Store

    在ExtJS中,我们可以通过继承FormPanel和Store类,然后重写或添加方法来实现自我扩展。例如,我们可能想要增加自定义验证规则,优化数据加载逻辑,或者添加特定的事件处理。 实现自我扩展FormPanel时,我们可以创建...

    Ext table布局实例 formpanel的table布局

    1. **form layout**:设置`layout: 'form'`,让formpanel使用form布局,这是一种默认的布局方式,自动根据组件宽度进行排列。 2. **table layout**:若要切换到table布局,需设置`layout: { type: 'table', columns...

    sencha的ajax+formpanel+google地图

    在用户填写完表单后,我们可以使用`FormPanel`的`submit`方法,它会使用Ajax方式将表单数据提交到服务器。 关于Google Maps集成,Sencha Touch虽然没有内置的Google Maps组件,但我们可以借助HTML5的`&lt;iframe&gt;`或者...

    extJs中关于formPanel动态添加组件的验证问题

    3. **更新验证状态**:如果在表单已经初始化并显示的情况下添加字段,可能需要手动触发FormPanel的验证,可以使用`formPanel.getForm().isValid()`来检查整个表单是否有效。 4. **错误处理**:当验证失败时,EXT JS...

    ExtJs中表单formPanel的横向布局

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

    extjs4如何给同一个formpanel不同的url_.docx

    在EXTJS4中,FormPanel是一个非常重要的组件,用于创建包含表单元素的用户界面。在某些场景下,我们可能...在进行EXTJS开发时,深入理解组件的工作原理和API使用,可以帮助我们更好地设计和实现复杂的用户界面逻辑。

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

    在Extjs4中,可以使用`form.load()`方法将JSON数据加载到FormPanel中。这个方法接收一个配置对象作为参数,该对象通常包括URL、请求类型(GET或POST)、成功回调函数和失败回调函数等属性。当后端服务器返回JSON数据...

    简单的两种Extjs formpanel加载数据的方式

    本文将详细介绍两种在ExtJS formpanel中加载数据的方法,以供开发者参考。 ### 方法一:使用`loadRecord()`加载数据 当formpanel的数据源与一个`Ext.data.Model`实例(通常来自`Ext.grid.Panel`的行数据)相同,...

    ExtJS4如何给同一个formpanel不同的url

    2. 使用`getForm()`方法获取FormPanel的内部BasicForm实例。 3. 通过BasicForm的`url`属性动态地设置提交地址。 这样,我们就可以灵活地为同一个FormPanel组件指定不同的提交路径,提高了代码的可维护性和组件的...

    ExtJs4.0 表单提交Demo

    ExtJs 4.0的FormPanel对象提供了`getForm()`方法获取表单实例,然后通过`form.submit()`或`form.serialize()`方法完成数据的序列化。 4. **表单提交过程** - **创建表单组件**:首先,定义一个FormPanel,并在其...

    ExtJs 动态添加表单

    使用`add`方法将字段添加到表单容器中: ```javascript formPanel.add(textField); formPanel.doLayout(); // 重新布局以显示新添加的字段 ``` 4. **监听和处理事件**: 我们可以监听用户的交互,比如字段的...

    EXT4 自己整理的一些常用方法

    这个压缩包文件包含了一些EXT4文件系统使用中的常见方法和技巧,主要分为四个部分:grid、function、data和util。 1. **Grid**: Grid在EXT中通常指的是数据网格,用于展示和管理大量结构化数据。这部分可能包含了...

    Ext form_load

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

    Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别

    当使用`Ext.FormPanel`的`getForm().submit()`方法进行异步提交时,主要特点是: - **自动处理表单数据**:`getForm().submit()`会自动获取表单内的所有字段值,无需手动构建参数对象。 - **内置验证**:在提交前...

    extjs属性方法大全

    ### Extjs 属性方法详解 #### 一、`Ext.form.Action` 类 `Ext.form.Action` 是用于处理表单操作的类,主要包括提交和加载数据的功能。 - **属性:** - `success`: 表示操作成功时的回调函数。 - `failure`: ...

    FCKeditor结合extjs实例

    标题 "FCKeditor结合extjs实例" 描述的是一个实际项目中使用的技术组合,涉及到的主要是两个前端富文本编辑器库:FCKeditor 和 ExtJS。这个实例表明在开发企业级网站时,如何将这两者有效地整合以实现复杂的用户界面...

    ExtJs 文本框后附件单位

    在使用ExtJS进行界面开发的过程中,常常会遇到需要在文本框后面附加单位的情况。例如,在输入数量时需要显示“个”、“人”等单位。这样的设计不仅提高了用户体验,还使得数据的含义更加清晰明确。然而,默认情况下...

Global site tag (gtag.js) - Google Analytics