在這里我們一塊看一下form中幾個(gè)控件,因?yàn)閒orm控件較多這里只簡(jiǎn)單看幾個(gè)比較有代表性的。
TextField
這個(gè)是最基本的form控件了,我們看一段代碼:
當(dāng)然,對(duì)于TextField前面已經(jīng)說過,這里主要看一下驗(yàn)證。allowBlank表示是否可以為空,否則它將會(huì)顯示blankText中的信息,但是請(qǐng)注意,這個(gè)信息的顯示是以提示信息的形式顯示的,必須加上 Ext.QuickTips.init(); 否則你是看不到錯(cuò)誤信息的,而且我們通過 Ext.form.Field.prototype.msgTarget = 'side';可以在驗(yàn)證未通過時(shí)在右側(cè)警告 。而emptyText很明顯就是為空時(shí)顯示的內(nèi)容,在后面我們還定義了輸入信息的最長(zhǎng)和最短的長(zhǎng)度限制以及對(duì)應(yīng)的提示信息。
效果如圖:
上面是為空的驗(yàn)證,其實(shí)對(duì)于常用的驗(yàn)證Ext中也已經(jīng)定義了,那就是vtype,假設(shè)我們要驗(yàn)證一個(gè)郵箱就可以在TextField中定義vtype屬性為"email"定義驗(yàn)證失敗的信息vtypeText為"郵箱格式不正確!"就可以了。
常用的vtype還有"alpha"(數(shù)字)、"alphanum"(數(shù)字和字母)、"url"。但是這樣的驗(yàn)證顯然還是不夠,我們知道正則表達(dá)式做驗(yàn)證是最常見的一種手法,Ext當(dāng)然也支持:
上面定義了一個(gè)很簡(jiǎn)單的正則表達(dá)是驗(yàn)證,顯示了正則表達(dá)式在Ext中的用法。但是其實(shí)我們知道即使是這樣有時(shí)還是不能夠滿足我們的要求的,這就必須應(yīng)用Ext中的自定義驗(yàn)證。自定義驗(yàn)證也很簡(jiǎn)單,只需要先使用apply方法添加自定義函數(shù)然后在控件中像Ext中已有驗(yàn)證一樣配置就可以了。假設(shè)現(xiàn)在我要選擇一個(gè)日期段,肯定結(jié)束日期不能夠小于開始日期,這樣的驗(yàn)證我們?cè)趺醋瞿兀?
我們首先添加了一個(gè)自定義函數(shù)(用Ext的apply方法)DateRange,在這個(gè)函數(shù)中我們有val、field兩個(gè)參數(shù),其中val就是要使用這個(gè)自定義函數(shù)的的控件的value值,field就是這個(gè)空間的屬性集合。我們約定在使用這個(gè)函數(shù)的控件中定義一個(gè)cmpDate屬性用來(lái)指定要比較的日期控件,然后在函數(shù)中我們得到這個(gè)空間的值(其實(shí)也就是其實(shí)日期的值),然后和val比較,如果val小于要比較的控件的值則返回false,否則為true。使用的時(shí)候就按照預(yù)定首先定義cmpDate,然后定義vtype為我們的自定義函數(shù)就可以了(和Ext中定義的常用vtype類型無(wú)二)。下面是我選擇了08/01/2010后鼠標(biāo)指針離開后的狀態(tài):
順便說一下,上面僅僅定義了自控件,用的時(shí)候是在FormPanel中items中添加對(duì)象名稱,由于后面的例子都是用這個(gè)fp對(duì)象作為容器,所以將代碼貼出來(lái):
Radio
Radio控件之前也用過,它和TextField控件還有些不同之處,我們一塊看一下。我們之前定義過這樣的代碼,最為子控件放到fp中:
效果就是這樣:
先不管它是否好看,上面定義的不是value屬性而是inputValue,這個(gè)一定要說明,否則你得到的就不是你想要的value值(當(dāng)然,CheckBox也是如此)。然后要說明的是它沒有沒有指定fieldLabel,如果我們指定了fieldLabel之后你會(huì)看到這樣的效果:
顯然這不是我們想要的,你肯定希望只有一個(gè)"性別"就可以了,而且兩個(gè)radio在同一行中,這才是我們通常看到的。那么我們?cè)撊绾蝸?lái)做呢?這個(gè)我們暫時(shí)先不管,后面我們會(huì)專門探討Ext布局。另外對(duì)于CheckBox和Radio是類似的,我們也不再說了。
FieldSet
這是一個(gè)容器組件,很簡(jiǎn)單,我們直接看代碼(這里用上面定義的tfUserName和tfUserPwd作為其子控件):
運(yùn)行效果:
ComboBox
這個(gè)控件功能十分強(qiáng)大,很多動(dòng)態(tài)復(fù)雜的功能它都有,我們這里暫且不探討他的交互性,后面會(huì)有專門的內(nèi)容去說,這里只看一些基本用法。
運(yùn)行效果:
那么我們?nèi)绾稳〉肅omboBox的值呢?其實(shí)比較簡(jiǎn)單,在上面的cbName加上listeners配置:
上面我用三種方法取得ComboBox的值。
好,暫且到這里了!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
