一、Ext.form.Panel
說明:Form fields包括:hiddenfield,displayfield,textfield,textareafield,filefield,timefield,datefield,combobox,numberfield,checkboxfield,radiofield,multislider,sliderfield
例子:
<script type="text/javascript"> <!--在頁面加載完成后調用JS代碼--> Ext.onReady(function(){ Ext.create('Ext.form.Panel', { frame: true, title: 'Form Fields', width: 340, bodyPadding: 5, renderTo: 'myForm', fieldDefaults: { labelAlign: 'left', labelWidth: 90, anchor: '100%' }, items: [{ //隱藏的文本框 xtype: 'hiddenfield', //1 name: 'hiddenfield1', value: '隱藏的文本框' },{ //顯示文本框,相當於label xtype: 'displayfield', //2 name: 'displayfield1', fieldLabel: 'Display field', value: '顯示文本框' },{ //輸入文本框 xtype: 'textfield', //3 name: 'textfield1', fieldLabel: 'Text field', value: '輸入文本框' },{ //輸入密碼的文本框,輸入的字符都會展現為. xtype: 'textfield', //4 name: 'password1', inputType: 'password', fieldLabel: 'Password field' },{ //多行文本輸入框 xtype: 'textareafield', //5 name: 'textarea1', fieldLabel: 'TextArea', value: '啦啦啦,我是賣報的小行家' },{ //上傳文件文本框 xtype: 'filefield', //6 name: 'file1', fieldLabel: 'File upload' },{ //時間文本框 xtype: 'timefield', //7 name: 'time1', fieldLabel: 'Time Field', minValue: '8:00 AM', maxValue: '5:00 PM', increment: 30 },{ //日期文本框 xtype: 'datefield', //8 name: 'date1', fieldLabel: 'Date Field', value: new Date() },{ //下拉列表框 xtype: 'combobox', //9 fieldLabel: 'Combobox', displayField: 'name', store: Ext.create('Ext.data.Store', { fields: [ {type: 'string', name: 'name'} ], data: [ {"name":"Alabama"}, {"name":"Alaska"}, {"name":"Arizona"}, {"name":"Arkansas"}, {"name":"California"} ] }), queryMode: 'local', typeAhead: true },{ //只能輸入數字的文本框 xtype: 'numberfield', name: 'numberfield1', //10 fieldLabel: 'Number field', value: 20, minValue: 0, maxValue: 50 },{ //復選框 xtype: 'checkboxfield', //11 name: 'checkbox1', fieldLabel: 'Checkbox', boxLabel: '復選框' },{ //單選框,注意name和下面的單選框相同 xtype: 'radiofield', //12 name: 'radio1', value: 'radiovalue1', fieldLabel: 'Radio buttons', boxLabel: 'radio 1' },{ //單選框,注意name和上面的單選框相同 xtype: 'radiofield', //13 name: 'radio1', value: 'radiovalue2', fieldLabel: '', labelSeparator: '', hideEmptyLabel: false, boxLabel: 'radio 2' },{ //拖動組件 xtype: 'multislider', //14 fieldLabel: 'Multi Slider', values: [25, 50, 75], increment: 5, minValue: 0, maxValue: 100 },{ //拖動組件 xtype: 'sliderfield', //15 fieldLabel: 'Single Slider', value: 50, increment: 10, minValue: 0, maxValue: 100 }] }); }); </script>
執行結果:
二、數據驗證
例子:
<script type="text/javascript"> <!--在頁面加載完成后調用JS代碼--> Ext.onReady(function(){ Ext.create('Ext.form.Panel', { frame: true, title: 'Form Fields Validation', width: 340, bodyPadding: 5, renderTo: 'myForm', fieldDefaults: { labelAlign: 'left', labelWidth: 90, anchor: '100%', //錯誤提示顯示在下方,還可以配置為side、title、none msgTarget: 'under' }, items: [{ xtype: 'textfield', name: 'textfield1', fieldLabel: '必須輸入', //不允許為空驗證 allowBlank: false //1 },{ xtype: 'textfield', name: 'textfield2', fieldLabel: '知道兩個字符', //輸入的字符長度驗證(至少輸入2個字符) minLength: 2 //2 },{ xtype: 'textfield', name: 'textfield3', fieldLabel: '最長5個字符', //輸入的字符長度驗證(最多輸入2個字符) maxLength: 5 //3 },{ xtype: 'textfield', name: 'textfield7', fieldLabel: '正則表達式驗證電話號碼', //通過正則表達式驗證 regex: /^\d{3}-\d{3}-\d{4}$/, //4 regexText: 'Must be in the format xxx-xxx-xxxx' },{ xtype: 'textfield', name: 'textfield4', fieldLabel: '驗證用戶輸入的是否為email', //已經定義好的驗證,請通過文檔查看vtype vtype: 'email' //5 },{ xtype: 'textfield', name: 'textfield6', fieldLabel: '驗證用戶輸入的是否是URL', vtype: 'url' //8 }] }); }); </script>
執行結果:
三、動態加載數據
說明:通過load方法加載json數據
四、提交數據
說明:通過submit方法提交數據