Ext.widgets-form(上)BasicForm/ Field/ Checkbox/ Radio/ HtmlEditor/ TextField

Ext.form.BasicForm
对应一个dom中的form,默认是用ajax提交的,如果的确想回传,可以使用如下方式
var myForm = new Ext.form.BasicForm("form-el-id", {
        onSubmit: Ext.emptyFn,
        submit: function() {
            this.getEl().dom.submit();
        }
    });

方法:
 BasicForm( Mixed el, Object config )
其中config配置为
{
 baseParams : Object,    //请求时的附加参数,格式为{id: '123', foo: 'bar'}
 errorReader : DataReader,    //提交时发生验证错误,这个dataReader将会被使用
 fileUpload : Boolean,    //支持文件上传
 method : String,    //GET或者POST
 reader : DataReader,    //load时使用的数据读取器
 timeout : Number,    //超时时间
 trackResetOnLoad : Boolean,//支持使用reset方法恢复原始值
 url : String    //form要提交的url地址
}

add( Field field1, [Field field2], [Field etc] ) : BasicForm
增加字段field1,field2,etc


applyIfToFields( Object values ) : BasicForm
applyToFields( Object values ) : BasicForm
用传入的values呼叫Ext.applyIf/apply 方法

clearInvalid() : BasicForm
清除当前basicform中所有的非法信息

doAction( String/Object actionName, [Object options] ) : BasicForm
执行预定义的动作actionName,actionName类似"submit","load",也可以是自定义的动作的名字或一个Ext.form.Action的实例,options类似如下对象{
url               :String,
method            :String,          
params            :String/Object,  
success           :Function,
failure           :Function,
clientValidation  :Boolean        
}

findField( String id ) : Field
在当前form中查找id/dataindex/name等于传入的id的field对象

getEl() : Ext.Element
得到当前form对象的element对象


getValues( Boolean asString ) : Object
得到当前form的fields {name:value,name:values}json对象,如果有同名多值,value将是一个数组

isDirty() : Boolean
从初始载入后,是否有field被修改过

isValid() : Boolean
客户端验证成功?

load( Object options ) : BasicForm
等效于doAction('load',options);

loadRecord( Record record ) : BasicForm
从一个record对象取值到当前basicform

markInvalid( Array/Object errors ) : BasicForm
标志非法,[{id:'fieldId', msg:'The message'},...]这样格式的数组或者{id: msg, id2: msg2}格式的对象

remove( Field field ) : BasicForm
从basicform中移除field

render() : BasicForm
在basicForm的fields中寻找,利用id属性检查他们,然后用id属性呼叫applyTo方法

reset() : BasicForm
重置所有值

setValues( Array/Object values ) : BasicForm
设置值,参见getValues

submit( Object options ) : BasicForm
提交表单

updateRecord( Record record ) : BasicForm
利用当前更新record对象,参见loadRecord

事件:
actioncomplete : ( Form this, Action action )
actionfailed : ( Form this, Action action )
beforeaction : ( Form this, Action action )


Ext.form.Field
有了form之后,我们当然还需要field
方法:
Field( Object config )
其中config设置为{
    autoCreate : String/Object,    //一个{tag: "input", type: "text", size: "20", autocomplete: "off"}这样的对象,或者选                    择true,就是前面所说的那个固定内置对象
    clearCls : String,        //,默认x-form-clear-left
    cls : String,            //默认样式
    disabled : Boolean,       
    fieldClass : String        //x-form-field
    fieldLabel : String       
    focusClass : String        //x-form-focus
    hideLabel : Boolean        //隐藏前导标签
    inputType : String        //input type="???"
    invalidClass : String        //x-form-invalid
    invalidText : String       
    itemCls :String
    labelSeparator : String        //分隔符
    msgFx : String
    msgTarget : String
    name : String
    readOnly : Boolean
    tabIndex : Number
    validateOnBlur : Boolean    //true
    validationDelay : Number    //250
    validationEvent : String/Boolean    //KeyUP
    value : Mixed
}

构造很麻烦的,但还好我们一般不会直接使用field

clearInvalid() : void
清除非法信息

getName() : String
getRawValue() : Mixed
getValue() : Mixed
isDirty() : void
isValid( Boolean preventMark ) : Boolean
markInvalid( String msg ) : void
reset() : void
setRawValue( Mixed value ) : void
setValue( Mixed value ) : void
validate() : Boolean

都很简单也略过了
事件
blur : ( Ext.form.Field this )
change : ( Ext.form.Field this, Mixed newValue, Mixed oldValue )
focus : ( Ext.form.Field this )
invalid : ( Ext.form.Field this, String msg )
specialkey : ( Ext.form.Field this, Ext.EventObject e )
valid : ( Ext.form.Field this )

Ext.form.Checkbox
继承自Field, 复选框

 Checkbox( Object config )
 构造,其中config{
    autoCreate : String/Object,
    boxLabel : String,
    checked : Boolean,
    fieldClass : String,//x-form-field
    focusClass : String,
 }

getValue() : Boolean
initComponent() : void
setValue( Boolean/String checked ) : void

事件
check : ( Ext.form.Checkbox this, Boolean checked )

Ext.form.Radio
继承自Ext.form.Checkbox,单选框
多了一个方法
getGroupValue() : String
如果单选框是一组radio 的一部分,取当前选中的值

Ext.form.Hidden
继承自Field,隐藏字段,无新特性


Ext.form.HtmlEditor
继承自Field,这个htmleditor功能太简单了,什么人能扩充一下就好了

config定义{
createLinkText : String    //
defaultLinkValue : String    // http://
enableAlignments : Boolean
enableColors : Boolean
enableFont : Boolean
enableFontSize : Boolean
enableFormat : Boolean
enableLinks : Boolean
enableLists : Boolean
enableSourceEdit : Boolean
fontFamilies : Array    //这个当然要用汉字的字体组成的数组了
}

方法

cleanHtml( String html ) : void
createToolbar( HtmlEditor editor ) : void
execCmd( String cmd, [String/Boolean value] ) : void
getDocMarkup() : void
getToolbar() : Ext.Toolbar
insertAtCursor( String text ) : void
pushValue() : void
relayCmd( String cmd, [String/Boolean value] ) : void
syncValue() : void
toggleSourceEdit( [Boolean sourceEdit] ) : void
updateToolbar() : void


要提一点的是,要使用HtmlEditor,别忘了先Ext.QuickTips.init();



Ext.form.TextField
config{
    allowBlank : Boolean    //允许为空
    blankText : String    //如果为空验证错误时的提示文字 ,默认This field is required
    disableKeyFilter : Boolean
    emptyClass : String
    emptyText : String
    grow : Boolean    // 自动生长?,如果需要,会加宽当前input type="text"
    growMax : Number
    growMin : Number
    maskRe : RegExp    //仅允许输入与maskRe匹配的按键
    maxLength : Number
    maxLengthText : String    //超出最大长度时提示文本
    minLength : Number
    minLengthText : String    //不够最小长度时提示信息
    regex : RegExp        //正则匹配
    regexText : String    //提示
    selectOnFocus : Boolean
    validator : Function    //自定义验证方法,接受当前字段的值,如果合法,返回真,反之返回自定义信息
    vtype : String    //Ext.form.VTypes 中定义的vtype类型名,支持简单的类型验证
    vtypeText : String//如果不是,则提示
}

方法:
TextField( Object config )
构造

autoSize() : void
自动尺寸

reset() : void
重置

selectText( [Number start], [Number end] ) : void
选择文本

validateValue( Mixed value ) : Boolean
验证值

作者姓名:blackant2
作者博客:http://blog.csdn.net/blackant2