1、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.field.FieldContainer | 字段容器 | fieldcontainer |
Ext.form.field.FieldSet | 字段集 | fieldset |
Ext.form.field.Hidden | 隱藏域 | hiddenfield |
Ext.form.field.HtmlEditer | 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 |
2、Ext.form.Panel主要配置項目表
配置項 | 類型 | 說明 |
---|---|---|
buttons | Array | 一個按鈕(Ext.button.Button)配置對象數組,按鈕將被添加到表單頁腳中 |
layout | String | 表單布局 |
minButtonWidth | Number | 表單按鈕的最小寬度,默認為75px |
pollForChanges | Boolean | 是否循環檢查表單值的變化 |
pollInterval | Number | 循環檢查表單值的時間間隔,默認為500ms |
items | Mixed | 一個子元素或子元素的數組 |
title | String | 表單標題 |
3、Ext.form.FormPanel常用方法表
方法名 | 說明 |
---|---|
checkChange:void | 強制檢查每個表單字段是否發生了變化 |
getForm():Ext.form.BasicForm | 獲取表單面板對應的基本表單對象 |
load(Object options):void | 加載表單內容 |
startPolling(Number interval):void | 開始循環檢查表單值是否發生了變化 參數說明: interval:循環檢查的時間,單位ms |
stopPolling:void | 停止startPolling啟動的內置任務 |
submit(Object options):void | 提交表單內容 |
4、Ext.form.field.Base主要配置項目表
配置項 | 類型 | 說明 |
---|---|---|
dirtyCls | String | 設置表單值被修改后的樣式 |
fieldCls | String | 設置表單字段的樣式,默認為“x-form-field” |
focusCls | String | 設置表單字段獲得焦點時的樣式,默認為“x-form-focus” |
id | String | 控件的唯一標識,默認系統自動生成一個唯一標識 |
inputId | String | 這個id將被應用於生成的input元素,默認情況下這個id自動生成,如果手工配置id則需保證這個id的唯一性 |
invalidText | String | 設置表單值無效且並沒有提供信息時的顯示文字 |
inputType | String | 字段類型,默認為text |
name | String | 字段名,默認為undefined |
readOnly | Boolean | 設置字段是否只讀,默認為false。 |
Mixin:Ext.form.field.Field | ||
disabled | Boolean | true則禁用組件,默認為false。禁用狀態下的組件將不被提交 |
submitValue | Boolean | 設置表單字段非禁用狀態下是否提交表單值,默認為true |
validateOnChange | Boolean | 設置是否在值發生變化時立刻校驗的有效性,默認為true |
value | Mixed | 字段的初始化值 |
Mixing:Ext.form.Labelable | ||
activeError | String | 如果設置該值,則組件第一次被渲染時該值將被作為錯誤信息展示,默認為undefined,組件創建之后可以使用setActiveError和unsetActiveError進行修改 |
activeErrorTpl | Ext.XTemplate | 錯誤信息模板 |
autoFitErrors | Boolean | 設置為true則自動調節組件體范圍,以便在組件范圍內顯示“side”或“under”狀態的錯誤信息,默認為true |
fieldLabel | String | 設置字段標簽,它將與labelSeparator一起被添加,它的位置尺寸決定於labelAlign,labelWidth和labelPad配置項,默認為undefined |
hideEmptyLabel | Boolean | 設置為true則完全隱藏內容為空的標簽 |
hideLabel | Boolean | 設置為true則完全隱藏表單標簽(fieldLabel和labelSeparator),默認為false |
labelAlign | String | 設置表單標簽filedLabel的位置, 有效值:left: 標簽在字段左邊。top: 標簽在字段上面。 right:標簽在字段右邊。 |
labelPad | Number | 設置表單標簽與表單字段值之間的空白間距,默認為5px |
labelSeparator | String | 設置表單標簽與表單字段之間的分隔符 |
labelStyle | String | 設置一個直接應用於標簽元素的樣式字符串,默認為undefined |
labelWidth | Number | 設置表單標簽寬度,僅當labelAlign設置為“left”或“right”時生效,默認為100px |
labelableRenderTpl | Array/String/Ext.Template | 表單標簽模板 |
msgTarget | String | 設置錯誤信息提示位置, 有效值包括: qtip:顯示一個浮動的提示消息 title:顯示一個瀏覽器浮動提示消息 under:在字段下面顯示一個提示消息 side:在字段右邊顯示一個提示消息 none:不顯示提示消息 [element id]:直接將錯誤消息添加到指定元素的innerHTML屬性 |
preventMark | Boolean | true則不顯示錯誤消息,默認為false |
5、簡單實例
代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Ext.form.Panel</title> <link href="ext-4.0.7-gpl/resources/css/ext-all.css" rel="stylesheet" type="text/css" /> <script src="ext-4.0.7-gpl/bootstrap.js" type="text/javascript"></script> <script type="text/javascript"> Ext.onReady(function () { Ext.QuickTips.init(); var form = new Ext.form.Panel({ title: "表單", height: 120, width: 200, frame: true, collapsible: true, renderTo: Ext.getBody(), defaults: { autoFitErrors: "false", labelSeparator: ":", labelWidth: 50, width: 150, allowBlank: false, blankText: "必填", msgTarget: "qtip" }, items: [{ xtype: "textfield", fieldLabel: "姓名" }, { xtype: "numberfield", fieldLabel: "年齡" }] }); }); </script> </head> <body style="margin: 30px"> </body> </html>
效果圖: