`

ExtJS的使用方法汇总2——表单与输入控件

 
阅读更多

一、创建一个简单的表单

1、具体配置信息参考上篇文章

2、创建简单表单的实现代码如下所示:

[c-sharp] view plaincopy
  1. <mce:scripttype="text/javascript"><!--
  2. Ext.onReady(function(){
  3. varform=newExt.form.FormPanel({
  4. defaultType:'textfield',
  5. labelAlign:'right',
  6. title:'form',
  7. labelWidth:50,
  8. frame:true,
  9. width:220,
  10. items:[{
  11. fieldLabel:'文本框'
  12. }],
  13. buttons:[{
  14. text:'按钮'
  15. }]
  16. });
  17. form.render("div1");
  18. });
  19. //--></mce:script>

3、注意HTML中无需定义太多东西,只需要定义个div id='div1'就可以实现,初始配置显然变得更紧凑,利用items和buttons指定包含的控件和按钮。具体实现效果如图1所示。

1

图1 简单的表单

二、FormPanel和BasicForm详解

如上面的实例所示,我们需要定义一个Ext.form.FormPanel,然后在里面设置field,引入Ext.form.FormPanel的最大好处就是利于布局,Ext.form.FormPanel继承了Ext.Panel,作为一个Panel,我们可以把Ext.form.FormPanel放到Ext.Viewport中作为整个页面布局的一部分,同时也可以利用items指定Ext.form.FormPanel内部的子组件。如其他的Panel一样,我们可以通过xtype来指定每个子组件的类型,而不必手工创建它们。

三、EXT支持的控件

EXT提供了TextField、TextArea、CheckBox、Radio、ComboBox、DateField、HtmlEditor这些通用控件,以及Ext 2.0新增的Hidden和TimeField.

3.1 文本输入控件Ext.form.TextField

直接继承Ext.form.Field,这是一个专门用来输入文本数据的输入控件,最常用的功能就是可以检测内部输入的数据是否为空,还可以控制输入数据的内容以及最大最小长度,如下面的代码所示:

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextField({
  3. fieldLabel:'输入',
  4. allowBlank:false,
  5. emptyText:'请输入…',
  6. maxLenght:50,
  7. minLength:10
  8. });
  9. form.render("div1");
  10. });

3.2 多行文本输入控件Ext.form.TextArea

Ext.form.TextArea也是用来输入文本的输入控件,与Ext.form.TextField不同之处在于它可以输入多行文本,除此以外,两者的用法都是相同的。如下面代码所示,preventScrollbars是用于防止出现滚动条的。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextArea({
  3. width:200,
  4. grow:true,
  5. preventScrollbars:true,
  6. fieldLabel:'empty',
  7. allowBank:false,
  8. emptyText:'空',
  9. maxLength:50,
  10. minLength:10
  11. });
  12. form.render("div1");
  13. });

3.3 日期输入控件Ext.form.DateField

Ext.form.DateField是平时经常用到的日期选择控件,除了弹出日历选择日期的功能之外,还支持所有Ext.form.Field以及Ext.form.TextField中定义的功能,如下面代码所示,format表示如何保存显示选中的日期,我们可以采用任意的模式显示选中的日期,disableDays的参数值是一个数组,内部可以包括0至7的整数,它可以禁止用户选择一周内的指定日期。效果图如图2所示。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.DateField({
  3. fieldLabel:'日期',
  4. emptyText:'请选择',
  5. format:'Y-m-d',
  6. disabledDays:[0,6]
  7. });
  8. form.render("div1");
  9. });

2

图2 日期输入控件(禁止选择每周的周六和周日)

3.4 时间输入控件Ext.form.TimeField

Ext.form.TimeField是用来选择时间的输入控件,它可以通过制定一天中的起始时间、结束时间以及时间间隔的方式来为用户提供可供选择的时间,如下面的代码所示,我们将起始时间设置为上午10点,结束时间设置为下午14点,时间间隔为30分钟。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TimeField({
  3. fieldLabel:'时间',
  4. emptyText:'请选择',
  5. minValue:'10:00AM',
  6. maxValue:'14:00PM',
  7. increment:30
  8. });
  9. form.render("div1");
  10. });

3.5在线编辑器Ext.form.HtmlEditor

Ext.form.HtmlEditor是一个简易的在线编辑器,能对文本进行各项设置。Ext.form.HtmlEditor的页面显示样式如图3所示。

3

图3 使用在线编辑器编辑文本样式

Ext.form.HtmlEditor的使用方法如下面的代码所示:

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.HtmlEditor({
  3. fieldLabel:'在线编辑器',
  4. enableAlignments:true,
  5. enableColors:true,
  6. enableFont:true,
  7. enableFontSize:true,
  8. enableFormat:true,
  9. enableLinks:true,
  10. enableLists:true,
  11. enableSourceEdit:true
  12. });
  13. form.render("div1");
  14. });

3.6隐藏域Ext.form.Hidden

Ext.form.Hidden直接继承自Ext.form.Field,我们可以通过它的setValue()和getValue()函数对它执行赋值和取值操作,但它不会显示在页面上。具体代码如下:

[c-sharp] view plaincopy
  1. varfield=newExt.form.Hidden({
  2. name:'hiddenId'
  3. });
  4. field.setValue('something');
  5. varvalue=filed.getValue();

3.7下拉输入框Ext.form.TriggerField

Ext.form.TriggerField是ComboBox、DateField和TimeField的父类,它既可以手工录入数据,也可以通过选择录入数据,为了显示下拉选择的功能,我们需要覆写它的onTriggerClick()函数以实现弹出窗口,如下面的代码所示:

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TriggerField({
  3. fieldLabel:'选择',
  4. name:'name',
  5. onSelect:function(record){
  6. },
  7. onTriggerClick:function(){
  8. if(this.menu==null){
  9. this.menu=selectMenu;
  10. }
  11. this.menu.show(this.el,'tl-bl?');
  12. }
  13. });
  14. form.render("div1");
  15. });

四、数据校验

数据校验非常有必要,因为用户输入的数据有时候是不可靠的,EXT把验证封装到了表单的控件中,下面详细介绍如何使用它们。

4.1 输入不能为空

最基本的验证就是文本框或者其他控件中必须输入值,如下面的代码,allowBlank默认值为true,也就是说可以不输入数据,将它改成false,文本框如果没有输入值就会出现红线。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextField({
  3. name:'text',
  4. fieldLabel:'文本框',
  5. allowBlank:false
  6. });
  7. form.render("div1");
  8. });

4.2 最大长度和最小长度

限制输入的最大长度和最小长度是一种常见的校验方式,数据库只容许输入255个字符,当用户输入的数据超出最大长度时就会引起错误。如下面代码所示,我们设置最大长度不能超过10个字符,最小长度不能小于5个字符。效果图如图4所示。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextField({
  3. name:'text',
  4. fieldLabel:'文本框',
  5. maxLength:10,
  6. minLenght:5
  7. });
  8. form.render("div1");
  9. });

4

图4 最大长度校验

4.3 借助vtype

EXT提供了一套默认的校验方案,其实就是一系列输入规则和错误提示。如果使用它们,就不需要再去背那一长串正则表达式,只要记住vtype的值即可,然后配置在空间中即可,如下面代码所示,这里我们给vtype设置的是E-mail,限制text只能使用邮箱地址的格式,非常简单。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextField({
  3. name:'text',
  4. fieldLabel:'文本框',
  5. vtype:'email'
  6. });
  7. form.render("div1");
  8. });

默认情况下,vtype一共有4种验证信息:alpha:只能输入英文字母;alphanum:只能输入字母和数字;email:电子邮箱;url:网址

4.4 自定义校验规则

其实自定义校验规则就是允许自定义正则表达式,可以编写一个regex对输入数据进行校验,这样一来,无论是何种形式的数据,都能对其进行判断,如下面代码所示,我们使用regex验证只能输入汉字的情况。

[c-sharp] view plaincopy
  1. Ext.onReady(function(){
  2. varform=newExt.form.TextField({
  3. name:'text',
  4. fieldLabel:'文本框',
  5. regex:/^[/u4E00-/u9FA5]+$/,
  6. regexText:'只能输入汉字'
  7. });
  8. form.render("div1");
  9. });


分享到:
评论

相关推荐

    EXTJS4自学手册

    目录: 一 Extjs 基础 EXTJS4自学手册——EXT文件目录,本地加载文档,命名规范 EXTJS4自学手册——EXT基本方法、属性(onReady、define、create) EXTJS4自学手册——EXT...EXTJS4自学手册——页面控件(表单控件)

    ExtJS时间控件、IP输入控件【控件】

    2. **IP输入控件**:这是一个定制的文本输入框,专为输入IPv4地址设计。它通常会根据用户输入的每个数字自动跳转到下一个输入框,并进行验证,确保输入的IP地址格式正确。例如,当用户在第一个输入框中输入一个数字...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    extjs时间控件精确秒

    在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...

    extjs3.2、3.3 时间控件 日期控件扩展

    在3.2和3.3版本中,ExtJS的时间控件(DateTimeField)和日期控件(DateField)是开发者常用的功能组件,用于处理用户输入的日期和时间数据。这些控件具有高度可定制性,可以满足各种界面和功能需求。 1. **时间控件...

    ExtJs 动态添加表单

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

    EXTJS时间控件年月日时分秒

    这篇文档将深入探讨EXTJS中的时间控件及其使用方法。 首先,EXTJS时间控件的设计理念是为了提供用户友好的时间选择界面。通过这个控件,用户可以方便地选择一个精确到秒的时间值,这对于需要精确时间输入的应用场景...

    ExtJS的使用方法汇总--doc文档

    除了表格控件,ExtJS还提供了表单(Form)和输入控件,用于创建交互式的用户界面。表单组件包括文本框、下拉列表、复选框等,可以方便地进行数据验证和提交。树形结构(TreePanel)则用于展示层次结构的数据,支持...

    extjs 常用控件的使用 table layout

    "常用控件的使用"涵盖了EXTJS中的一些核心组件,如: 1. **TextField**:用于输入文本的基本字段,支持多种验证和配置。 2. **ComboBox**:下拉框,允许用户从预定义的选项中选择,也可以进行搜索。 3. **Checkbox*...

    extjs日期+时间控件

    2. **日期时间控件(DateTime Field)**:在ExtJS中,日期和时间的输入通常通过`Ext.form.field.Date`和`Ext.form.field.Time`实现,但为了同时处理日期和时间,可以使用`Ext.picker.DateTime`或自定义组合控件。...

    extjs4.2 datetime控件

    在实际开发中,你可能需要将DateTime控件与其他ExtJS组件(如表格、表单)结合使用,以创建复杂的用户界面。例如,在一个日程管理应用中,DateTime控件可以用于添加或编辑事件的时间。通过阅读和理解DateTime控件的...

    extjs网页控件开发

    2. **数据绑定**:通过ExtJS的双向数据绑定机制,使得视图(控件)与模型之间的数据自动同步。 3. **事件处理**:利用ExtJS的事件系统,如change事件,来监听用户的选择并触发相应的行为。 4. **Store配置**:配置...

    extjs 时间控件

    在ExtJS中,时间控件是一种用户界面元素,允许用户选择或输入特定的时间值。它提供了丰富的交互性和自定义选项,使得时间选择过程更加直观和高效。在本篇文章中,我们将深入探讨ExtJS时间控件的使用、功能和配置。 ...

    Extjs 5 日期时间控件

    在ExtJS 5中,日期时间控件是开发用户界面时经常会用到的组件,它允许用户选择和输入日期及时间值。本篇文章将深入探讨ExtJS 5的日期时间控件及其特点。 首先,ExtJS 5 的日期时间控件(DateTimeField)结合了日期...

    extjs3.0 日期时间控件

    这个控件通常用于表单中,提供了一种直观且用户友好的方式来输入或选择日期和时间。 描述中的"适用于ext3.0,打开index.html即可见效果"表明提供的压缩包包含了一个基于ExtJS 3.0的示例应用,其中`index.html`文件...

    extjs属性方法大全

    以上是 `Extjs` 中常用的表单类及其属性和方法的详细介绍,这些类和方法提供了丰富的功能,帮助开发者快速构建功能完备的 Web 表单应用。通过掌握这些基础知识,可以有效地提高开发效率并确保应用程序的质量。

    extjs 微调控件,时间微调控件,微调,javascript 微调

    时间微调控件则是专门针对时间值进行微调的组件,它通常会与日期选择器一起使用,让用户能够精确到分钟甚至秒来调整时间。在ExtJS中,这种功能可以通过扩展基础的微调控件或者使用内建的时间字段(TimeField)实现。...

    ExtJs图片按钮控件

    通常,这些示例会涵盖不同的场景,如按钮响应用户交互、与其他组件交互、或者在不同布局中的使用方法。 总结一下,ExtJs图片按钮控件提供了强大的功能,使得开发者可以创建更加美观且交互性更强的按钮。通过设置...

    Extjs6 日期时间控件

    在EXTJS6中,日期时间控件是一种强大的用户界面组件,它将传统的日期选择器与时间选择器结合在一起,提供了一种便捷的方式来输入和编辑日期和时间数据。这个控件在许多应用程序中都非常实用,特别是在那些需要精确...

    extjs 5 combogrid控件

    总的来说,ExtJS 5的Combogrid控件是数据驱动型应用中的重要组件,它提供了灵活的数据展示和选择方式,广泛应用于表单输入、数据筛选和选择等场景。通过熟练掌握其使用和配置,开发者可以构建出更加高效和用户友好的...

Global site tag (gtag.js) - Google Analytics