`
guoyiqi
  • 浏览: 1010186 次
社区版块
存档分类
最新评论

learning ext js 中文版 之 Ext的form功能是无穷的

阅读更多

Extform功能是无穷的。按键监听,校验,错误提示和值约束只需要做下简单配置就可以了。根据需要扩展form选项也是很容易的。你要先熟悉一些主要的form控件。

1.       Ext.form.FormPanel:多个的field可以放在一个panel里,就像html里需要一个form标签一样。

2.       Ext.form.Fieldform里的主要用作创建和交互的控件,就像是html里的input标签。

 

我们先来建一个有多种输入类型的form ,还包括了日期选择控件,校验,错误提示,而且是ajax异步提交的。

这个例子,我们的输入框是用配置的,而不是实例化后的控件。这样编写简单而且运行速度也快。一个标准的页面,ext的包也都要导进来,我们的方法也要写在onReady函数里。

<script>

Ext.onReady(function(){//copyright guoyiqi

var movie_form = new Ext.FormPanel({

url: 'movie_forms_ubmit.jsp',

renderTo: document.body,

frame: true,

title: '电影信息',

width: 280,

items: [{

xtype: 'textfield',

fieldLabel: '电影名',

name: 'title'

},{

xtype: 'textfield',

fieldLabel: '导演',

name: 'director'

},{

xtype: 'datefield',

fieldLabel: '上映日期',

name: 'released',

width:120

}]

});

});

</script>

在浏览器预览,可以看到以下界面

FormPanelhtmlform非常像,都是用来包含表单项的。在FormPanel里有个url的配置属性,当表单提交时,它就知道要把数据发送到哪里了。同时它也有个renderTo的配置属性,这样就能把表单显示到页面的相应位置。Items的配置属性非常重要,它包含了所有的表单项。Items配置的是个数组类型的表单项,每个表单项用一个xtype属性来定义该表单项的类型:文本,日期或数字。甚至可以是表格或其他的Ext控件。

表单项的类型有以下一些:

Textfield

Timefield

Numberfield

Datefield

Combo

Textarea

先来看例子中的第一个表单项

{

xtype: 'textfield',//配置表单项类型

fieldLabel: '电影名',//显示在左边的文本标签,当然也可以设置成在右边或上边

name: 'title'//html一样,发送到服务器端的变量名

}

Ext中的表单项和html中的表单项基本上是一致的,因为Ext 是用于Web的。

 

校验

当用户操作不当时,我们应该要给出错误提示。让我们在上面的例子里加入校验吧。最常见的校验是检查用户是否输入了值。我们就用在电影名这个表单项上吧。把它设成必填项。

{

xtype: 'textfield',

fieldLabel: '电影名',

name: 'title',

allowBlank: false

}

加上个allowBlank: false,这是很容易的。默认情况下为true.

有些表单项的校验可能会很特殊,如日期,下面的代码限制了只能填入星期六和星期日。

{

xtype: 'datefield',

fieldLabel: '上映日期',

name: 'released',

width:120,

disabledDays: [1,2,3,4,5]

}

要记得星期是从0开始代表星期日,6结束代表星期六。

当然我们还可以设置数字校验,小数位数等,相关配置可以查看API.

更复杂的校验是vtype。它可以校验限制用户的输入,并且提示错误信息。你可以用它来校验你能想到的任何场景,因为它是用正则表达式来设置的。

已经有一些内置的vtypes可以用了:

Email

url

alpha

alphanum

 

这些内置的vtypes简单易用,并可以用它们来创建自己的vtype

我们在导演这个表单项加入vtype限制,只能输入字母。

{

xtype: 'textfield',

fieldLabel: '导演',

name: 'director',

vtype: 'alpha'

}

这个例子我们可以看到内建的vtype很基础,表单项的导演就只能输入字母,输入中文就用红色波浪形给出提示了。

 

错误信息提示

默认情况下,表单项验证不通过时是以红色波浪形给出提示,和微软的word对语法的错误校验提示一样。我们还可以在ext 中设置其它的错误提示方式。

一种比较好的方式是除了给出红色波浪形,当鼠标移到表单项上时,弹出提示框信息。我们只需要在表单创建之前加入一条语句就 可以了。

Ext.onReady(function(){

Ext.QuickTips.init();

// our form here

});

                                                                                                     

创建自己的vtype

如果你也像我一样看到正则表达式就头大,我总是先找一些类似的然后做些修改,而不是从头写起。http://guoyiqi.iteye.com

要创建我们自己的vtype,就要在vtype的定义中添加。每个定义包括值,掩码,错误信息和测试用的函数。

我们对导演名进行校验,只能包含字符和空格,第一个字母大写。

<script>

Ext.onReady(function(){

Ext.QuickTips.init();

Ext.form.VTypes['nameVal'] = /^[A-Z][A-Za-z\-]+[A-Z][A-Za-z\-]+$/;//校验的值

Ext.form.VTypes['nameMask'] = /[A-Za-z\- ]/;//限制输入

Ext.form.VTypes['nameText'] = '名字格式有误';//错误信息

Ext.form.VTypes['name'] = function(v){//测试函数

return Ext.form.VTypes['nameVal'].test(v);

}

var movie_form = new Ext.FormPanel({

url: 'movie_forms_ubmit.jsp',

renderTo: document.body,

frame: true,

title: '电影信息',

width: 280,

items: [{

xtype: 'textfield',

fieldLabel: '电影名',

name: 'title',

allowBlank: false

},{

xtype: 'textfield',

fieldLabel: '导演',

name: 'director',

vtype: 'name'

},{

xtype: 'datefield',

fieldLabel: '上映日期',

name: 'released',

width:120,

disabledDays: [1,2,3,4,5]

}]

});

});

</script>

 

掩码可以限制输入,如只允许数字或是字母。因为用正则表达式做设置,所以可以过滤掉任何按键。举个例子copy right guoyiqi 2009

maskRe: /[A-Z]/

可以输入任意长度字母串。

也可以用vtype来做限制。如果格式变来变去,就应该做成容易修改的代码。如果你的boss过来跟你说,上次我们的数字保留的是10位,现在我们可不可以改成8位。这时我们只需要改下vtype 就可以了。

http://guoyiqi.iteye.com

Radio buttons and check boxes

单选和多选框

单选框和多选框真是很难用的恶魔。我只在毫无选择的情况下才会使用它们。

我们现在表单里加入单选框。

{

xtype: 'radio',

fieldLabel: 'Filmed In',

name: 'filmed_in',

boxLabel: 'Color'

},{

xtype: 'radio',

hideLabel: false,

labelSeparator: '',

name: 'filmed_in',

boxLabel: 'Black & White'

}

他们和html的单选框很像,给了相同的名字就可以设成一组。我们设置第一个radio的标签,其余的没有设置。

默认情况下标签以:隔开,如图

如果隐藏了标签,

 

都影响了视觉效果,所以设置了hideLabel: false,

labelSeparator: '',将:替换成空。

有时我们要用到多选框来设置布尔类型-开或关的两个状态值。

{

xtype: 'checkbox',

fieldLabel: '是否好电影',

name: 'good_movie'

}

 

firefox浏览器的效果出不来,如图http://guoyiqi.iteye.com

 

 

 

html的表单中,组合框或叫选择框或叫下拉框是很常用的。Ext的组合框是很实用的。

我们先来试一下组合框的数据取自本地。我们需要建一个data storeData store有很多种类,这里用一个简单的。font-size:

分享到:
评论

相关推荐

    Learning Ext JS 3.2

    这本书深入浅出地介绍了Ext JS的核心概念、组件和功能,旨在帮助开发者掌握这一强大的JavaScript库,从而构建高效、用户友好的Web应用程序。 Ext JS是一个用于构建富互联网应用程序(RIA)的开源JavaScript库,它...

    Learning Ext JS

    总之,Ext JS是一个功能强大的JavaScript框架,提供了丰富的用户界面组件和API,能够帮助开发者快速构建具有专业外观和复杂交互功能的Web应用程序。通过学习Ext JS,开发者可以掌握构建现代、动态、跨平台Web应用所...

    learning ext js 中文版之在对话框中添加图标和按钮事件

    "学习EXT JS中文版之在对话框中添加图标和按钮事件"这一主题深入探讨了如何为EXT JS的对话框(Modal Dialog)增添视觉吸引力和功能性,通过添加图标和响应式按钮事件来提升用户体验。 EXT JS中的对话框通常用于显示...

    Learning Ext JS 4 pdf

    Learning Ext JS 4 by Crysfel Villa and Armando Gonzalez (Oct 8, 2012) $49.99 Paperback Order in the next 13 hours and get it by Tuesday, Mar 19. More Buying Choices - Paperback $46.48 new (17 ...

    Learning_Ext_JS.pdf使用中文文档

    ### 关于《Learning_Ext_JS.pdf》中文文档的知识点总结 #### 一、Ext JS简介与功能概述 根据文档标题“Learning_Ext_JS.pdf使用中文文档”,我们可以推断出本书主要介绍了Ext JS这一Web开发框架的相关知识。Ext JS...

    learning ext js 中文版 之 根据用户操作对话框来给出响应

    Ext JS是一个强大的JavaScript库,专为构建富客户端Web应用而设计。它提供了丰富的组件模型,包括各种对话框(Dialogs),这些对话框可以用于显示通知、确认信息、输入数据等。 在Ext JS中,对话框通常称为`Window`...

    Learning Ext JS 4

    首先,标题“Learning Ext JS 4”指明了这本教程的核心内容,即学习Ext JS框架的第四个版本。Ext JS是一个基于JavaScript的框架,用于开发富互联网应用程序(RIA)。它提供了一系列丰富的界面组件,使得开发者能够...

    learning ext js

    learning ext js learning ext jslearning ext js learning ext js

    RIA Programming Learning Ext JS

    本书《Learning Ext JS》由Shea Frederick、Colin Ramsay 和 Steve 'Cutter' Blades 共同编写,旨在为读者提供一个系统性的学习指南,帮助开发者掌握使用Ext JS开发RIA(Rich Internet Application)的技术。...

    Packt Learning Ext Js Nov 2008 Ebook-Elohim.pdf

    Ext JS是一种基于JavaScript的库,用于构建交互式和高性能的Web应用程序。它提供了一系列丰富的UI组件,如表格、网格、树、图表等,以及强大的数据管理功能,使得开发者能够快速地创建复杂的用户界面。Ext JS支持...

    learning Ext js

    ### 关于《Learning Ext JS》 #### 书籍概述 《Learning Ext JS》是一本于2008年出版的专业书籍,旨在帮助读者学习如何使用Ext JS框架构建动态、桌面风格的用户界面,适用于数据驱动的Web应用程序。本书由Shea ...

    Learning EXT JS

    Ext JS是一个用于创建交互式用户界面的JavaScript库,它提供了丰富的组件和工具,使得开发者能够轻松地开发出高性能的Web应用。 ### 构建动态用户界面 在现代Web开发中,用户界面的体验对于吸引和保留用户至关重要...

    Learning ExtJS, Fourth Edition (Ext JS 5+)

    《Learning ExtJS, Fourth Edition (Ext JS 5+)》是关于Ext JS框架的一本经典教程,该书针对Ext JS的5.x版本进行了全面升级。Ext JS是一个成熟的JavaScript框架,用于开发具有丰富交互性的Web应用程序。它最初由Jack...

    Ext-JS 3.0 Cookbook Packt Publishing PDF

    - 对于初学者来说,建议先阅读《Learning Ext JS》这本书作为入门指南,然后再深入学习《Ext JS 3.0 Cookbook》中的进阶内容。 - 结合实际项目进行练习是非常重要的,可以尝试着根据书中的示例构建自己的小项目,...

    Learning.Ext.JS.3.2

    Ext.JS是一种功能强大的JavaScript库,用于简化Web前端开发过程,允许开发者快速构建复杂的用户界面组件,如表格、树、菜单、工具栏等,同时提供丰富的主题和样式选项。 ### 构建动态桌面式用户界面 在《学习Ext....

    Learning TypeScript 中文完整版.pdf

    "Learning TypeScript 中文完整版.pdf" 这本书详细介绍了 TypeScript 的各个方面,帮助学习者全面掌握这一强大的语言工具。 1. **类型系统**:TypeScript 引入了静态类型,允许开发者在编写代码时就声明变量、函数...

    Ext JS开发资料大汇集

    Ext JS是一种强大的JavaScript框架,主要用于构建富互联网应用程序(RIA,Rich Internet Applications)。它提供了一套完整的组件模型,使得开发者能够创建交互性强、功能丰富的Web应用。这个“Ext JS开发资料大汇集...

    Learning Python中文版(Python语言入门)

    《Learning Python中文版》是一本旨在帮助读者入门Python编程语言的书籍。这本书详细介绍了Python的基础知识,适合初学者和希望提高编程技能的读者。Python是一种自由的开放源码的解释性语言,它设计的初衰就是追求...

    Learning ELK Stack中文版

    Learning ELK Stack中文版

Global site tag (gtag.js) - Google Analytics