一、制作一個表單
var form = new Ext.form.({
:‘’,
:‘right’,
title:‘form’,
:50,
frame:true,
width:220,
item:[{
:‘文本框’
}],
:[{
text:‘按鈕’
}]
});
form.("form");
HTML里不需要寫很多代碼了,只需定義一個就可以實現(xiàn)這一切。初始配置顯然變得更緊湊,利用items和指定包含的控件和按鈕。
二、輸入控件
(1)表單控件
(2)基本輸入控件Ext.form.Field:
是所有表單輸入控件的額基類,其他的輸入入控件都是基于Ext.form.Field擴(kuò)展得來的。Ext.form.Field中定義了輸入控件通用的屬性和功能函數(shù),這些通用的屬性和功能函數(shù)大致分為3大類:頁面顯示樣式、控件參數(shù)配置和數(shù)據(jù)有效性校驗。
(3)文本輸入控件Ext.form.:
直接繼承自Ext.form.Field,它是一個專門用來輸入文本數(shù)據(jù)的輸入控件。除了Ext.form.Field中提供的通用屬性和功能函數(shù)外,Ext.form.最常用的特性就是可以檢測內(nèi)部輸入的數(shù)據(jù)是否為空,還可以控制輸入數(shù)據(jù)的內(nèi)容及最大最小長度。
(4)多行文本輸入控件Ext.form.:
用來輸入文本的輸入控件,與Ext.form.的不同之處是,他可以輸入多行文本。除此之外,兩者的用法都是相同的。
(5)時間輸入控件Ext.form.:
用來選擇時間的輸入控件,它可以通過指定一天中的起始時間,結(jié)束時間以及時間間隔的方式來為用戶提供可選擇的時間。
(6)在線編輯器Ext.form.:
是一個簡易的在線編輯器,能對文本進(jìn)行各項設(shè)置。
(7)隱藏域Ext.form.:
直接繼承自Ext.form.Field,可以通過它的()和()函數(shù)對它執(zhí)行賦值和取值操作,但它不會顯示在頁面上。當(dāng)我們想保存一些需要隱藏的數(shù)據(jù)時,可以使用Ext.form.。
(8)下拉輸入框Ext.form.:
是、和的父類,它既可以通過手工錄入數(shù)據(jù),也可以通過選擇錄入數(shù)據(jù)。為了顯示下拉選擇的功能,需要覆寫它的()函數(shù)以實現(xiàn)彈出窗口。
三、使用表單提交數(shù)據(jù):
Form最重要的功能是向后抬提交數(shù)據(jù)。但是,普通的HTML表單只能執(zhí)行最單純的提交,EXT中的Form卻支持三種形式的提交:
(1)EXT默認(rèn)的提交形式:
form對象有一個函數(shù),用途就是提交數(shù)據(jù)。
(2)使用HTML原始的提交形式:
EXT默認(rèn)的提交形式是不會進(jìn)行頁面跳轉(zhuǎn)的,主要是考慮到“one page one ”的形式。但是,有的用戶還是希望在點擊“提交”按鈕后就可以跳轉(zhuǎn)到其他頁面。在EXT里這并不是什么難事,EXT本質(zhì)是,原來的能做的事情它都可以做。Ext.form.Form也只是對原始Form進(jìn)行了裝飾而已。找出那個我們都熟悉的Form,直接在它上面調(diào)用()就可以了。
難點就在于找出Ext.form.Form中層層包裹的form。注意js 選擇元素做表單驗證,EXT中所有的控件都有el,el都是有DOM的,這個DOM模型就是EXT控件在頁面上真實對應(yīng)的部分了。于是我們只需要修改按鈕的函數(shù)。
(3)單純Ajax:
這里跳過表單自帶的Ajax功能,使用單獨的Ajax。實際上,表單自身的就使用了Ajax方式。想進(jìn)一步控制表單里的數(shù)據(jù),調(diào)用Ajax也是一個不錯的選擇。
既然是使用外部Ajax,就只需知道如何從中把字段的數(shù)據(jù)取出來,一共有以下幾種方式:
1.form.()函數(shù):它有一個參數(shù),如果參數(shù)為truejs 選擇元素做表單驗證,就返回JSON組裝的字符串;如果是false,就返回JSON對象 ,對應(yīng)其中每個字段的名稱和值。默認(rèn)是false。
2.()函數(shù):它可以獲得表單里的控件。