Ext.form.NumberField
继承自Ext.form.TextField,因为Ext.form.TextField虽然强大,但写起来的确还是有点麻烦,后面的类都继承自Ext.form.TextField,没有自定义的方法,属性和事件
config定义为{
allowDecimals : Boolean //true
allowNegative : Boolean //true
baseChars : String //'0123456789'
decimalPrecision : Number //精度,默认值2
decimalSeparator : String //小数分隔符
fieldClass : String //默认样式为x-form-field x-form-num-field
maxText : String
maxValue : Number //默认Number.MAX_VALUE
minText : String
minValue : Number //默认Number.NEGATIVE_INFINITY
nanText : String //NaN时显示?
}
Ext.form.TextArea
config{
autoCreate : String/Object //{tag: "textarea", style: "width:100px;height:60px;", autocomplete: "off"}
growMax : Number //1000
growMin : Number //60
preventScrollbars : Boolean //如果为真等于设置overflow: hidden,默认为false
}
Ext.form.TriggerField
这个类只要text旁边加了个下拉按钮,要自己实现onTriggerClick
config{
autoCreate : String/Object, //{tag: "input", type: "text", size: "16", autocomplete: "off"}
hideTrigger : Boolean //隐藏trigger,就是右边的那个下拉选择框
triggerClass : String
}
事件
onTriggerClick( EventObject e ) : void
Ext.form.DateField
继承自TriggerField,用于日期选择
config{
altFormats : String //转换用户输入到日期时的格式,默认'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 //不让选总得给个理由吧
disabledDays : Array //不让选星期几,例[0,6],不让选周六,周日
disabledDaysText : String //周日要休息,这就是理由
format : String //显示时的格式
invalidText : String //验证非法时的提示
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
triggerClass : String
}
方法,除了构造,多了两个顾名思义的方法
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当然就是combobox了,如果不可编辑就是一个select了
forceSelection : Boolean
handleHeight : Number //如果resiable为真时,设置
hiddenName : String
lazyInit : Boolean //除非得到焦点才开始初始化列表,默认为真
lazyRender : Boolean //除非请求,才开始输出,默认为假
listAlign : String //对齐方式,参见Ext.Element.alignTo,默认为'tl-bl'
listClass : String
listWidth : Number
loadingText : String //仅当mode = 'remote'时调用数据时显示的文本
maxHeight : Number //300
minChars : Number //最少输入多少个字开始响应,远程时默认为4,本地为0,如果不可编辑则此值无效
minListWidth : Number
mode : String //可选值local/remote之一,从本地还是远程取数据
pageSize : Number //在远程模式下,如果此值大于0会在底部显示一个翻页工具条
queryDelay : Number //查询延时,远程默认为500,本地10
queryParam : String //查询参数,默认为query
resizable : Boolean
selectOnFocus : Boolean
selectedClass : String
shadow : Boolean/String //True或"sides"为默认风格, "frame" for 4-way shadow, and "drop" for bottom-right
store : Ext.data.Store
title : String
transform : Mixed //对应一个select元素,可以将select转为combobox对象
triggerAction : String //点击按钮时的动作.默认为query
triggerClass : String
typeAhead : Boolean //false
typeAheadDelay : Number //250
valueField : String
valueNotFoundText : String //值不存在时的提示信息
}
属性
view : Ext.DataView
方法
ComboBox( Object config )
构造
clearValue() : void
清除所有文本/值对
collapse() : void
expand() : void
收起/展开下拉列表
doQuery( String query, Boolean forceAll ) : void
执行查询
getValue() : String
选择当前字段的值
isExpanded() : void
下拉列表是展开的?
select( Number index, Boolean scrollIntoView ) : void
选中第index列表项
selectByValue( String value, Boolean scrollIntoView ) : Boolean
选中值为value的列表项
setEditable( Boolean value ) : void
设editable属性为value
setValue( String value ) : void
设置当前值为
事件
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,用于选择时间
config{
altFormats : String //
format : String
increment : Number //时间增长间隔,默认15
invalidText : String
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
}
总的来说Ext.form对input type='text' select 这样的输入标签都有对应的类,并对有些标签做了简单的扩展,当然很重要的一点,漂亮多了,vtype属性也方便了处理,建议有兴趣的同胞对 Ext.form.VTypes和Ext.form.HtmlEditor做一些扩展
form中还有两个类,比如下例中的FormPanel和FieldSet,
都继承自panel,所以会放在panel中解释
综合示例
继承自Ext.form.TextField,因为Ext.form.TextField虽然强大,但写起来的确还是有点麻烦,后面的类都继承自Ext.form.TextField,没有自定义的方法,属性和事件
config定义为{
allowDecimals : Boolean //true
allowNegative : Boolean //true
baseChars : String //'0123456789'
decimalPrecision : Number //精度,默认值2
decimalSeparator : String //小数分隔符
fieldClass : String //默认样式为x-form-field x-form-num-field
maxText : String
maxValue : Number //默认Number.MAX_VALUE
minText : String
minValue : Number //默认Number.NEGATIVE_INFINITY
nanText : String //NaN时显示?
}
Ext.form.TextArea
config{
autoCreate : String/Object //{tag: "textarea", style: "width:100px;height:60px;", autocomplete: "off"}
growMax : Number //1000
growMin : Number //60
preventScrollbars : Boolean //如果为真等于设置overflow: hidden,默认为false
}
Ext.form.TriggerField
这个类只要text旁边加了个下拉按钮,要自己实现onTriggerClick
config{
autoCreate : String/Object, //{tag: "input", type: "text", size: "16", autocomplete: "off"}
hideTrigger : Boolean //隐藏trigger,就是右边的那个下拉选择框
triggerClass : String
}
事件
onTriggerClick( EventObject e ) : void
Ext.form.DateField
继承自TriggerField,用于日期选择
config{
altFormats : String //转换用户输入到日期时的格式,默认'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 //不让选总得给个理由吧
disabledDays : Array //不让选星期几,例[0,6],不让选周六,周日
disabledDaysText : String //周日要休息,这就是理由
format : String //显示时的格式
invalidText : String //验证非法时的提示
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
triggerClass : String
}
方法,除了构造,多了两个顾名思义的方法
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当然就是combobox了,如果不可编辑就是一个select了
forceSelection : Boolean
handleHeight : Number //如果resiable为真时,设置
hiddenName : String
lazyInit : Boolean //除非得到焦点才开始初始化列表,默认为真
lazyRender : Boolean //除非请求,才开始输出,默认为假
listAlign : String //对齐方式,参见Ext.Element.alignTo,默认为'tl-bl'
listClass : String
listWidth : Number
loadingText : String //仅当mode = 'remote'时调用数据时显示的文本
maxHeight : Number //300
minChars : Number //最少输入多少个字开始响应,远程时默认为4,本地为0,如果不可编辑则此值无效
minListWidth : Number
mode : String //可选值local/remote之一,从本地还是远程取数据
pageSize : Number //在远程模式下,如果此值大于0会在底部显示一个翻页工具条
queryDelay : Number //查询延时,远程默认为500,本地10
queryParam : String //查询参数,默认为query
resizable : Boolean
selectOnFocus : Boolean
selectedClass : String
shadow : Boolean/String //True或"sides"为默认风格, "frame" for 4-way shadow, and "drop" for bottom-right
store : Ext.data.Store
title : String
transform : Mixed //对应一个select元素,可以将select转为combobox对象
triggerAction : String //点击按钮时的动作.默认为query
triggerClass : String
typeAhead : Boolean //false
typeAheadDelay : Number //250
valueField : String
valueNotFoundText : String //值不存在时的提示信息
}
属性
view : Ext.DataView
方法
ComboBox( Object config )
构造
clearValue() : void
清除所有文本/值对
collapse() : void
expand() : void
收起/展开下拉列表
doQuery( String query, Boolean forceAll ) : void
执行查询
getValue() : String
选择当前字段的值
isExpanded() : void
下拉列表是展开的?
select( Number index, Boolean scrollIntoView ) : void
选中第index列表项
selectByValue( String value, Boolean scrollIntoView ) : Boolean
选中值为value的列表项
setEditable( Boolean value ) : void
设editable属性为value
setValue( String value ) : void
设置当前值为
事件
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,用于选择时间
config{
altFormats : String //
format : String
increment : Number //时间增长间隔,默认15
invalidText : String
maxText : String
maxValue : Date/String
minText : String
minValue : Date/String
}
总的来说Ext.form对input type='text' select 这样的输入标签都有对应的类,并对有些标签做了简单的扩展,当然很重要的一点,漂亮多了,vtype属性也方便了处理,建议有兴趣的同胞对 Ext.form.VTypes和Ext.form.HtmlEditor做一些扩展
form中还有两个类,比如下例中的FormPanel和FieldSet,
都继承自panel,所以会放在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 ,
url: ' post.php ' ,
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: ' radio1 '
} ),
new Ext.form.Radio( {
labelSeparator: '' ,
name: ' radio ' ,
checked: true ,
boxLabel: ' radio2 '
} )
]
} ),
new Ext.form.Hidden( { // hidden
name: ' hidden '
} ),
htmleditor,
new Ext.form.TextField( { // text
fieldLabel: ' text ' ,
name: ' text ' ,
grow: true ,
allowBlank: false ,
blankText: " 这个字段最好不要为空 " ,
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>helloworld</h1> " );
htmleditor.syncValue();
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 ,
url: ' post.php ' ,
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: ' radio1 '
} ),
new Ext.form.Radio( {
labelSeparator: '' ,
name: ' radio ' ,
checked: true ,
boxLabel: ' radio2 '
} )
]
} ),
new Ext.form.Hidden( { // hidden
name: ' hidden '
} ),
htmleditor,
new Ext.form.TextField( { // text
fieldLabel: ' text ' ,
name: ' text ' ,
grow: true ,
allowBlank: false ,
blankText: " 这个字段最好不要为空 " ,
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>helloworld</h1> " );
htmleditor.syncValue();
Ext.widgets-form(下)ComboBox,TimeField,DateField,TriggerField,TextArea,NumberField