Ext.form.NumberField
繼承自Ext.form.TextField,因?yàn)镋xt.form.TextField雖然強(qiáng)大,但寫起來的確還是有點(diǎn)麻煩,后面的類都繼承自Ext.form.TextField,沒有自定義的方法,屬性和事件

config定義為{
    allowDecimals : Boolean    //true
    allowNegative : Boolean    //true
    baseChars : String    //'0123456789'
    decimalPrecision : Number    //精度,默認(rèn)值2
    decimalSeparator : String    //小數(shù)分隔符
    fieldClass : String    //默認(rèn)樣式為x-form-field x-form-num-field
    maxText : String
    maxValue : Number    //默認(rèn)Number.MAX_VALUE
    minText : String
    minValue : Number    //默認(rèn)Number.NEGATIVE_INFINITY
    nanText : String    //NaN時(shí)顯示?
}

Ext.form.TextArea

config{
    autoCreate : String/Object    //{tag: "textarea", style. "width:100px;height:60px;", autocomplete: "off"}
    growMax : Number    //1000
    growMin : Number    //60
    preventScrollbars : Boolean    //如果為真等于設(shè)置overflow: hidden,默認(rèn)為false
}

Ext.form.TriggerField
這個(gè)類只要text旁邊加了個(gè)下拉按鈕,要自己實(shí)現(xiàn)onTriggerClick
config{
    autoCreate : String/Object,    //{tag: "input", type: "text", size: "16", autocomplete: "off"}
    hideTrigger : Boolean        //隱藏trigger,就是右邊的那個(gè)下拉選擇框
    triggerClass : String

}
事件
onTriggerClick( EventObject e ) : void


Ext.form.DateField
繼承自TriggerField,用于日期選擇

config{
    altFormats : String        //轉(zhuǎn)換用戶輸入到日期時(shí)的格式,默認(rèn)'m/d/Y|m-d-y|m-d-Y|m/d|m-d|d'
    autoCreate : String/Object    //{tag: "input", type: "text", size: "10", autocomplete: "off"}
    disabledDates : Array        //禁止選擇的日期:例 ["^03","04/../2006","09/16/2003"],不讓選3月,2006年4月,2003年9月16
    disabledDatesText : String    //不讓選總得給個(gè)理由吧
    disabledDays : Array    //不讓選星期幾,例[0,6],不讓選周六,周日
    disabledDaysText : String    //周日要休息,這就是理由
    format : String    //顯示時(shí)的格式
    invalidText : String    //驗(yàn)證非法時(shí)的提示
    maxText : String
    maxValue : Date/String
    minText : String
    minValue : Date/String
    triggerClass : String
}

方法,除了構(gòu)造,多了兩個(gè)顧名思義的方法
DateField( Object config )
getValue() : Date
setValue( String/Date date ) : void



Ext.form.ComboBox
config{
    allQuery : String        //''
    autoCreate : Boolean/Object    //{tag: "input", type: "text", size: "24", autocomplete: "off"}
    displayField : String    //顯示字段
    editable : Boolean        //true當(dāng)然就是combobox了,如果不可編輯就是一個(gè)select了
    forceSelection : Boolean
    handleHeight : Number    //如果resiable為真時(shí),設(shè)置
    hiddenName : String
    lazyInit : Boolean    //除非得到焦點(diǎn)才開始初始化列表,默認(rèn)為真
    lazyRender : Boolean    //除非請(qǐng)求,才開始輸出,默認(rèn)為假
    listAlign : String    //對(duì)齊方式,參見Ext.Element.alignTo,默認(rèn)為'tl-bl'
    listClass : String
    listWidth : Number
    loadingText : String    //僅當(dāng)mode = 'remote'時(shí)調(diào)用數(shù)據(jù)時(shí)顯示的文本
    maxHeight : Number        //300
    minChars : Number        //最少輸入多少個(gè)字開始響應(yīng),遠(yuǎn)程時(shí)默認(rèn)為4,本地為0,如果不可編輯則此值無效
    minListWidth : Number
    mode : String    //可選值local/remote之一,從本地還是遠(yuǎn)程取數(shù)據(jù)
    pageSize : Number    //在遠(yuǎn)程模式下,如果此值大于0會(huì)在底部顯示一個(gè)翻頁工具條
    queryDelay : Number    //查詢延時(shí),遠(yuǎn)程默認(rèn)為500,本地10
    queryParam : String    //查詢參數(shù),默認(rèn)為query
    resizable : Boolean
    selectOnFocus : Boolean
    selectedClass : String
    shadow : Boolean/String    //True或"sides"為默認(rèn)風(fēng)格, "frame" for 4-way shadow, and "drop" for bottom-right
    store : Ext.data.Store
    title : String
    transform. Mixed    //對(duì)應(yīng)一個(gè)select元素,可以將select轉(zhuǎn)為combobox對(duì)象
    triggerAction : String    //點(diǎn)擊按鈕時(shí)的動(dòng)作.默認(rèn)為query
    triggerClass : String
    typeAhead : Boolean        //false
    typeAheadDelay : Number    //250
    valueField : String
    valueNotFoundText : String    //值不存在時(shí)的提示信息
}

屬性
view : Ext.DataView

方法
ComboBox( Object config )
構(gòu)造

clearValue() : void
清除所有文本/值對(duì)

collapse() : void
expand() : void
收起/展開下拉列表

doQuery( String query, Boolean forceAll ) : void
執(zhí)行查詢

getValue() : String
選擇當(dāng)前字段的值

isExpanded() : void
下拉列表是展開的?

select( Number index, Boolean scrollIntoView ) : void
選中第index列表項(xiàng)

selectByValue( String value, Boolean scrollIntoView ) : Boolean
選中值為value的列表項(xiàng)

setEditable( Boolean value ) : void
設(shè)editable屬性為value

setValue( String value ) : void
設(shè)置當(dāng)前值為

事件
beforequery : ( Object queryEvent )
beforeselect : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )
collapse : ( Ext.form.ComboBox combo )
expand : ( Ext.form.ComboBox combo )
select : ( Ext.form.ComboBox combo, Ext.data.Record record, Number index )


Ext.form.TimeField
繼承自combobox,用于選擇時(shí)間
config{
    altFormats : String    //
    format : String
    increment : Number    //時(shí)間增長間隔,默認(rèn)15
    invalidText : String
    maxText : String
    maxValue : Date/String
    minText : String
    minValue : Date/String
}

總 的來說Ext.form對(duì)input type='text' select 這樣的輸入標(biāo)簽都有對(duì)應(yīng)的類,并對(duì)有些標(biāo)簽做了簡(jiǎn)單的擴(kuò)展,當(dāng)然很重要的一點(diǎn),漂亮多了,vtype屬性也方便了處理,建議有興趣的同胞對(duì) Ext.form.VTypes和Ext.form.HtmlEditor做一些擴(kuò)展
form中還有兩個(gè)類,比如下例中的FormPanel和FieldSet,
都繼承自panel,所以會(huì)放在panel中解釋

綜合示例
   

Ext.QuickTips.init();
  
    var arr=[ [1, '本.拉登'], [2, '笨.拉登'],[3, '笨.拉燈'] ];
    var reader = new Ext.data.ArrayReader(
   {id: 0},
   [
    {name: 'value'},       
    {name: 'key'}  
    ]);
  
    var store=new Ext.data.Store({
      reader:reader
   });
   store.loadData(arr);
  
    var htmleditor=new Ext.form.HtmlEditor({
        fieldLabel:'htmleditor',
        width:450,
        fontFamilies:['宋體','隸書'],
        name:'editor',
        id:'editor'
    });
       var form. = new Ext.FormPanel({
        labelWidth: 75,
        ,
        frame.:true,
        width: 800,
        defaultType: 'textfield',
        items: [
            new Ext.form.Checkbox({     //checkbox
                fieldLabel:'checkbox',
                name:'cb',
                checked:true,
                boxLabel:'checkbox'
            }),
            new Ext.form.FieldSet({ //radio
                border:false,
                title:'radio',
                items:[
                    new Ext.form.Radio({
                        labelSeparator:'',
                        name:'radio',
                        checked:true,
                        boxLabel:'radio 1'
                    }),
                    new Ext.form.Radio({
                        labelSeparator:'',
                        name:'radio',
                        checked:true,
                        boxLabel:'radio 2'
                    })
                ]
             }),
            new Ext.form.Hidden({   //hidden
                name:'hidden'
            }),
          
            htmleditor,
            new Ext.form.TextField({ //text
                fieldLabel:'text',
                name:'text',
                grow:true,
                allowBlank:false,
                blankText : "這個(gè)字段最好不要為空",
                maskRe:/[a-zA-z]/gi
            }),
            new Ext.form.NumberField({ //NumberField
                allowNegative:true,
                fieldLabel:'number',
                  name:'number'
            }),
            new Ext.form.TextArea({    //TextArea
                fieldLabel:'textarea',
                name:'textarea'
            }),
            new Ext.form.TriggerField({ //TriggerField
                fieldLabel:'TriggerField',
                name:'TriggerField'
            }),
            new Ext.form.ComboBox({ //select
                fieldLabel:'select',
                editable:false,
                triggerAction: 'all',
                valueField:'value',
                displayField:'key',
                mode: 'local',
                store:store
            }),
            new Ext.form.ComboBox({ //combobox
                fieldLabel:'ComboBox',
                displayField:'key',
                mode: 'local',
                store:store
            }),
            new Ext.form.DateField({ //DateField
                fieldLabel:'DateField',
                format:'Y-m-d',
                disabledDays:[0,6]
            }),
            new Ext.form.TimeField({//TimeField
                fieldLabel:'TimeField',
                mode: 'local',
                increment:60
              
            })
            ]
        });
form.render(document.body);

htmleditor.setRawValue("<h1>hello world</h1>");
htmleditor.syncValue();

ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程