[ExtJs5.1.0系列-第6天]Form表单 之 表单面板(Ext.form.Panel)

    对于从事Web开发的程序员来讲,接触最多的就是表单的操做。传统的HTML表单给人一种功能单一风格朴素的印象。这个问题在ExtJs的表单上有了很大程度的改善,ExtJs对于经常使用表单功能给出了优秀的实现,不但美观并且稳定。接下来会对ExtJs表单的主要功能及组件进行详细的介绍。html

1. 表单及表单元素

    表单在Web应用中处于很是重要的地位,咱们时刻都在使用表单收集用户信息与用户交互,并将收集到的有用信息提交到后台服务端,表单是客户端与服务端之间通讯的主要桥梁。
程序员

    ExtJs表单不但能够实现HTML标准表单的所有功能,还提供了大量的扩展特性:
数组

    (1)表单的异步提交
浏览器

    (2)可配置的表单数据验证
异步

    (3)可配置的表单错误信息提示
编辑器

    (4)对特殊数据(数组、日期、时间等)输入组件的支持
ide

2. Ext.form.Basic基本表单

    Ext.form.Basic是基本的表单组件,提供了字段管理、数据验证、表单提交、数据加载等功能,它能够做用与Ext.container.Container容器,但推荐使用Ext.form.Panel做为表单容器。Ext.form.Panel会自动关联到Ext.form.Basic示例,方便进行字段的配置。
布局

3. Ext.form.Panel表单面板

    ExtJs的表单面板组件Ext.form.Panel,本质是一个标准的Ext.panel.Panel(面板),是表单项的容器,它内置并自动建立了Ext.form.Basic基本表单组件,用来管理表单项(Ext.form.Field),Ext.form.Panel支持Ext.form.Basic的全部配置内容。
测试

    Ext.form.Panel默认使用anchor布局,而且能够方便地替换为其余任何标准布局。
spa

    Ext.form.Panel与HTML原始表单布局表现形式不一样,对表单的操做及处理也不相同,这些不一样主要表如今表单的提交方式、表单的验证和对表单组件的支持3个方面。

    (1)表单提交方式

        HTML原始表单(form)使用form.submit()的方式进行提交,这种提交方式是同步进行的,会致使浏览器页面的跳转,打断用户操做,下降用户体验。而Ext.form.Panel(表单面板组件)采用Ajax方式进行异步表单提交,不会致使浏览器页面的跳转,不会打断用户的操做,有利于改善用户体验。

    (2)对表单验证的支持

        HTML原始表单并不支持表单组件的验证功能,在须要进行验证的场合程序员须要编写相应的验证代码,并在表单提交前进行调用以保证提交数据的正确性。而Ext.form.Panel已经支持了常见的表单验证功能,只须要在组件上进行必要的配置就能够实现对该组件输入数据的验证,而且这个验证是不须要程序员手工调用的,在表单提交以前会自动调用验证功能,并对出现错误的输入给出相应的提示。

    (3)对表单组件的支持

        HTML原始表单支持的表单组件和Ext.form.Panel支持的表单组件很是不一样,Ext.form.Panel支持的表单组件所有是通过ExtJs封装以后的组件对象,具备更多的高级功能。

    如下列出Ext.form.FormPanel支持的主要表单组件

ExtJs表单组件 说明 xtype类型
Ext.form.field.Checkbox 复选框
checkboxfield
Ext.form.CheckboxGroup 复选框组 checkboxgroup
Ext.form.field.ComboBox 下拉列表框 combo
Ext.form.field.Date 日期选择框 datefield
Ext.form.field.Display
文本展现组件 displayfield
Ext.form.FieldContainer 字段容器 fieldcontainer
Ext.form.FieldSet 字段集 fieldset
Ext.form.field.Hidden 隐藏域 hiddenfield
Ext.form.field.HtmlEditor HTML文本编辑器 htmleditor
Ext.form.Label 标签字段 label
Ext.form.field.Number 数字输入框
numberfield
Ext.form.field.Radio 单选框 radio
Ext.form.RadioGroup 单选框组 radiogroup
Ext.form.field.Spinner 微调组件 spinnerfield
Ext.form.field.TextArea 多行文本框 textareafield
Ext.form.field.Text 单行文本框 textfield
Ext.form.field.Time 时间选择框 timefield
Ext.form.field.Trigger 触发按钮文本框 triggerfield
Ext.form.field.File 文本上传字段 filefield

    如下列出Ext.form.Panel的重要配置项及经常使用方法

配置项
类型 说明
buttons Array 一个按钮(Ext.button.Button)配置对象的数组,按钮将被添加到表单页脚当中
layout String 表单布局,默认为anchor
minButtonWidth Number
表单按钮的最小宽度,默认为75像素
pollForChanges Boolean 是否循环检查表单值得变化
pollInterval Number 循环检查表单值的时间间隔,默认为500毫秒
items Mixed 一个子元素或子元素的数组
title String 表单标题

下面咱们将建立一个form表单容器

Ext.onReady(function() {
	var form = Ext.create('Ext.form.Panel', {
		renderTo: 'form',
		title: '表单测试',
		height: 300,
		width: 380,
		defaults: {
			labelSeparator: ':',
			labelAlign: 'right',
			allowBlank: false,
			blankText: '不容许为空',
//			msgTarget: 'qtip' 		//显示一个浮动的提示信息
//			msgTarget: 'title'		//显示一个浏览器原始的浮动提示信息
//			msgTarget: 'side'		//在字段下方显示一个提示信息
			msgTarget: 'under'		//在字段的右边显示一个提示信息
//			msgTarget: 'errorMsg'	//在指定id的元素内显示提示信息
		},
		items: [
			{xtype: 'textfield', fieldLabel: '姓名'},
			{xtype: 'numberfield', fieldLabel: '年龄', minValue: 1}
		],
		buttons: [{text:'Submit'}, {text:'Reset'}]
	});
});

运行结果如图:

相关文章
相关标签/搜索