- <HTML>
- <HEAD>
- <TITLE>提示信息</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="../../ext-4.0/resources/css/ext-all.css" />
- <script type="text/javascript" src="../../ext-4.0/bootstrap.js"></script>
- <script type="text/javascript" src="../../ext-4.0/locale/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- Ext.QuickTips.init();//初始化信息提示功能
- var form = new Ext.form.Panel({
- title:'表單',//表單標題
- height:120,//表單高度
- width:200,//表單寬度
- frame:true,//是否渲染表單
- renderTo :'form',
- defaults:{//統一設置表單字段默認屬性
- //autoFitErrors : false,//展示錯誤信息時是否自動調整字段組件寬度
- labelSeparator :':',//分隔符
- labelWidth : 50,//標籤寬度
- width : 150,//字段寬度
- allowBlank : false,//是否允許爲空
- blankText : '不允許爲空',
- labelAlign : 'left',//標籤對齊方式
- msgTarget :'qtip' //顯示一個浮動的提示信息
- //msgTarget :'title' //顯示一個瀏覽器原始的浮動提示信息
- //msgTarget :'under' //在字段下方顯示一個提示信息
- //msgTarget :'side' //在字段的右邊顯示一個提示信息
- //msgTarget :'none' //不顯示提示信息
- //msgTarget :'errorMsg' //在errorMsg元素內顯示提示信息
- },
- items:[{
- xtype : 'textfield',
- fieldLabel : '姓名'//標籤內容
- },{
- xtype : 'numberfield',
- fieldLabel : '年齡'
- }]
- });
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px">
- <div id='form'></div>
- <!-- 錯誤信息展示元素 -->
- <div id='errorMsg'></div>
- </BODY>
- </HTML>
- <div id='form'></div>
- Ext.QuickTips.init();
- var loginForm = Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Text示例',
- bodyStyle:'padding:5 5 5 5',//表單邊距
- frame : true,
- height:120,
- width:200,
- renderTo :'form',
- defaultType: 'textfield',//設置表單字段的默認類型
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 50,//標籤寬度
- width : 150,//字段寬度
- allowBlank : false,//是否允許爲空
- labelAlign : 'left',//標籤對齊方式
- msgTarget :'side' //在字段的右邊顯示一個提示信息
- },
- items:[{
- fieldLabel : '用戶名',
- name : 'userName',
- selectOnFocus : true,//得到焦點時自動選擇文本
- //驗證電子郵件格式的正則表達式
- regex : /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,
- regexText:'格式錯誤'//驗證錯誤之後的提示信息,
- },{
- name : 'password',
- fieldLabel : '密碼',
- inputType : 'password'//設置輸入類型爲password
- }
- ],
- buttons:[{
- text : '登陸',
- handler : function(){
- loginForm.form.setValues({userName:'user@com',password:'123456'});
- }
- }]
- });
- Ext.QuickTips.init();
- var testForm = Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.TextArea示例',
- bodyStyle:'padding:5 5 5 5',//表單邊距
- frame : true,
- height:150,
- width:250,
- renderTo :'form', //<div id='form'></div>
- items:[{
- xtype : 'textarea',
- fieldLabel : '備註',
- id:'memo',//字段組件id
- labelSeparator :':',//分隔符
- labelWidth : 60,//標籤寬度
- width:200
- }],
- buttons:[{text:'確定',handler:showValue}]
- })
- function showValue(){
- var memo = testForm.getForm().findField('memo');//取得輸入控件
- alert(memo.getValue());//取得控件值
- }
- //Ext.form.field.Number示例
- Ext.QuickTips.init();
- var form = Ext.create('Ext.form.FormPanel',{
- title:'Ext.form.field.Number示例',
- bodyStyle:'padding:5 5 5 5',//表單邊距
- renderTo :'form', //<div id='form'></div>
- frame : true,
- height:150,
- width:250,
- defaultType: 'numberfield',//設置表單字段的默認類型
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 80,//標籤寬度
- width : 200,//字段寬度
- labelAlign : 'left',//標籤對齊方式
- msgTarget :'side' //在字段的右邊顯示一個提示信息
- },
- items:[{
- fieldLabel:'整數',
- hideTrigger : true,//隱藏微調按鈕
- allowDecimals : false,//不允許輸入小數
- nanText :'請輸入有效的整數'//無效數字提示
- },{
- fieldLabel:'小數',
- decimalPrecision : 2,//精確到小數點後兩位
- allowDecimals : true,//允許輸入小數
- nanText :'請輸入有效的小數'//無效數字提示
- },{
- fieldLabel:'數字限制',
- baseChars :'12345'//輸入數字範圍
- },{
- fieldLabel:'數值限制',
- maxValue : 100,//最大值
- minValue : 50//最小值
- }]
- });
觸發字段:
- //Ext.form.field.Trigger示例
- var testForm = Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Trigger示例',
- bodyStyle:'padding:5 5 5 5',//表單邊距
- frame : true,
- height:100,
- width:270,
- renderTo :'form',
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 70,//標籤寬度
- width : 200,//字段寬度
- labelAlign : 'left'//標籤對齊方式
- },
- items:[{
- xtype : 'triggerfield',
- id:'memo',
- fieldLabel:'觸發字段',
- hideTrigger : false,//不隱藏觸發按鈕
- onTriggerClick : function(){
- var memo = testForm.getForm().findField('memo');//取得輸入控件
- alert(memo.getValue());//取得控件值
- Ext.getCmp('memo').setValue('test');
- }
- }]
- });
微調字段
- //Ext.form.field.Spinner示例
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Spinner示例',
- bodyStyle:'padding:5 5 5 5',//表單邊距
- frame : true,
- height:70,
- width:250,
- renderTo :'form',
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 70,//標籤寬度
- width : 200,//字段寬度
- labelAlign : 'left'//標籤對齊方式
- },
- items:[{
- xtype : 'spinnerfield',
- fieldLabel:'微調字段',
- id : 'salary',//組件id
- value : 100,//初始化字段值
- onSpinUp : function(){
- var salaryCmp = Ext.getCmp('salary');//通過組件id獲取組件對象
- //增加默認值
- salaryCmp.setValue(Number(salaryCmp.getValue()) + 1);
- },
- onSpinDown : function(){
- var salaryCmp = Ext.getCmp('salary');
- //減小默認值
- salaryCmp.setValue(Number(salaryCmp.getValue()) - 1);
- }
- }]
- });
ComboBox本地數據源示例
- //Ext.form.field.ComboBox本地數據源示例
- //創建數據模型
- Ext.regModel('PostInfo', {
- fields: [{name: 'province'},{name: 'post'}]
- });
- //定義組合框中顯示的數據源
- var postStore = Ext.create('Ext.data.Store',{
- model : 'PostInfo',
- data : [
- {province:'北京',post:'100000'},
- {province:'通縣',post:'101100'},
- {province:'昌平',post:'102200'},
- {province:'大興',post:'102600'},
- {province:'密雲',post:'101500'},
- {province:'延慶',post:'102100'},
- {province:'順義',post:'101300'},
- {province:'懷柔',post:'101400'}
- ]
- });
- //創建表單
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.ComboBox本地數據源示例',
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- frame : true,
- height:100,
- width:270,
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 70,//標籤寬度
- width : 200,//字段寬度
- labelAlign : 'left'//標籤對齊方式
- },
- items:[{
- xtype : 'combo',
- listConfig : {
- emptyText : '未找到匹配值',//當值不在列表是的提示信息
- maxHeight : 60//設置下拉列表的最大高度爲60像素
- },
- name:'post',
- autoSelect : true,
- fieldLabel:'郵政編碼',
- triggerAction: 'all',//單擊觸發按鈕顯示全部數據
- store : postStore,//設置數據源
- displayField:'province',//定義要顯示的字段
- valueField:'post',//定義值字段
- queryMode: 'local',//本地模式
- forceSelection : true,//要求輸入值必須在列表中存在
- typeAhead : true,//允許自動選擇匹配的剩餘部分文本
- value:'102600'//默認選擇大興
- }]
- });
Ext.form.field.Time示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Time示例',
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- frame : true,
- height:100,
- width:300,
- items:[{
- fieldLabel:'時間選擇框',
- xtype : 'timefield',
- width : 220,
- labelSeparator :':',//分隔符
- msgTarget :'side',//在字段的右邊顯示一個提示信息
- autoFitErrors : false,//展示錯誤信息時是否自動調整字段組件寬度
- maxValue : '18:00',//最大時間
- maxText : '時間應小於{0}',//大於最大時間的提示信息
- minValue : '10:00',//最小時間
- minText : '時間應大於{0}',//小於最小時間的提示信息
- pickerMaxHeight : 70,//下拉列表的最大高度
- increment : 60,//時間間隔爲60分鐘
- format : 'G時i分s秒 ',//G標示爲24時計時法
- invalidText :'時間格式無效'
- }]
- });
Ext.form.field.Date示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Time示例',
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- frame : true,
- height:100,
- width:300,
- items:[{
- fieldLabel:'時間選擇框',
- xtype : 'timefield',
- width : 220,
- labelSeparator :':',//分隔符
- msgTarget :'side',//在字段的右邊顯示一個提示信息
- autoFitErrors : false,//展示錯誤信息時是否自動調整字段組件寬度
- maxValue : '18:00',//最大時間
- maxText : '時間應小於{0}',//大於最大時間的提示信息
- minValue : '10:00',//最小時間
- minText : '時間應大於{0}',//小於最小時間的提示信息
- pickerMaxHeight : 70,//下拉列表的最大高度
- increment : 60,//時間間隔爲60分鐘
- format : 'G時i分s秒 ',//G標示爲24時計時法
- invalidText :'時間格式無效'
- }]
- });
Ext.form.field.Hidden示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Hidden示例',
- frame : true,
- height:100,
- width:300,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- defaultType: 'textfield',//設置表單字段的默認類型
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 70,//標籤寬度
- width : 200,//字段寬度
- labelAlign : 'left'//標籤對齊方式
- },
- items:[{
- name:'userName',
- fieldLabel:'姓名'
- },{//隱藏域
- name:'age',
- xtype : 'hidden'
- },{
- name:'sex',
- fieldLabel:'性別'
- }]
- });
Ext.form.field.HtmlEditor示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.HtmlEditor示例',
- width : 630,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- items:[{
- fieldLabel:'HTML字段',
- xtype : 'htmleditor',
- height:150,
- width : 600,
- value : 'ExtJS4登場',
- labelWidth : 70,//標籤寬度
- labelSeparator :':',//分隔符
- createLinkText : '創建超鏈接',//創建連接的提示信息
- defaultLinkValue : "http://www.",//連接的默認格式
- enableAlignments : true,//起用左、中、右對齊按鈕
- enableColors : true,//起用前景色、背景色選擇按鈕
- enableFont : true,//起用字體選擇按鈕
- enableFontSize : true,//起用字體增大和縮寫按鈕
- enableFormat : true,//起用粗體、斜體、下劃線按鈕
- enableLinks : true,//起用創建連接按鈕
- enableLists : true,//起用列表按鈕
- enableSourceEdit : true,//起用源代碼編輯按鈕
- fontFamilies:['宋體','隸書','黑體'],//字體列表
- buttonTips :{
- bold : {
- title: 'Bold (Ctrl+B)',
- text: '粗體'
- },
- italic : {
- title: 'Italic (Ctrl+I)',
- text: '斜體'
- },
- underline : {
- title: 'Underline (Ctrl+U)',
- text: '下劃線'
- },
- increasefontsize : {
- title: 'Grow Text',
- text: '增大字體'
- },
- decreasefontsize : {
- title: 'Shrink Text',
- text: '縮小字體'
- },
- backcolor : {
- title: 'Text Highlight Color',
- text: '背景色'
- },
- forecolor : {
- title: 'Font Color',
- text: '前景色'
- },
- justifyleft : {
- title: 'Align Text Left',
- text: '左對齊'
- },
- justifycenter : {
- title: 'Center Text',
- text: '居中對齊'
- },
- justifyright : {
- title: 'Align Text Right',
- text: '右對齊'
- },
- insertunorderedlist : {
- title: 'Bullet List',
- text: '項目符號'
- },
- insertorderedlist : {
- title: 'Numbered List',
- text: '數字編號'
- },
- createlink : {
- title: 'Hyperlink',
- text: '超連接'
- },
- sourceedit : {
- title: 'Source Edit',
- text: '切換源代碼編輯模式'
- }
- }
- }]
- });
Ext.form.field.Display示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.field.Display示例',
- width : 200,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- items:[{
- fieldLabel:'展示字段',
- xtype : 'displayfield',
- value : '<b>ExtJS4登場</b>',
- labelWidth : 70,//標籤寬度
- labelSeparator :':'//分隔符
- }]
- });
Ext.form.Label示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.Label示例',
- width : 200,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- items:[ {
- xtype: 'label',
- forId: 'userName',//關聯inputId爲userName的表單字段
- text: '用戶名'
- },{
- name:'userName',
- xtype : 'textfield',
- inputId : 'userName',
- hideLabel : true //隱藏字段標籤
- }]
- });
Ext.form.FieldSet示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.FieldSet示例',
- labelWidth : 40,//標籤寬度
- width : 220,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- items:[{
- title:'產品信息',
- xtype : 'fieldset',
- collapsible : true,//顯示切換展開收縮狀態的切換按鈕
- bodyPadding: 5,
- defaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 50,//標籤寬度
- width : 160//字段寬度
- },
- defaultType: 'textfield',//設置表單字段的默認類型
- items:[{
- fieldLabel:'產地'
- },{
- fieldLabel:'售價'
- }]
- },{
- title:'產品描述',
- xtype : 'fieldset',
- bodyPadding: 5,
- checkboxToggle : true,//顯示切換展開收縮狀態的複選框
- checkboxName : 'description',//提交數據時複選框對應的name
- labelSeparator :':',//分隔符
- items:[{
- fieldLabel:'簡介',
- labelSeparator :':',//分隔符
- labelWidth : 50,//標籤寬度
- width : 160,//字段寬度
- xtype : 'textarea'
- }]
- }]
- });
Ext.form.FieldContainer示例:
- Ext.create('Ext.form.Panel',{
- title:'Ext.form.FieldContainer示例',
- width : 300,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- fieldDefaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 60,//標籤寬度
- width : 260,//字段寬度
- msgTarget : 'side'
- },
- defaultType: 'textfield',//設置表單字段的默認類型
- items:[{
- fieldLabel:'商品名稱'
- },{
- xtype: 'fieldcontainer',
- fieldLabel: '生產日期',
- layout: {//設置容器字段佈局
- type: 'hbox',
- align: 'middle'//垂直居中
- },
- combineErrors : true,//合併展示錯誤信息
- fieldDefaults: {
- hideLabel: true,//隱藏字段標籤
- allowBlank : false//設置字段值不允許爲空
- },
- defaultType: 'textfield',//設置表單字段的默認類型
- items: [{
- fieldLabel: '年',
- flex: 1,
- inputId : 'yearId'
- },{
- xtype: 'label',
- forId : 'yearId',
- text: '年'
- },{
- fieldLabel: '月',
- flex: 1,
- inputId : 'monthId'
- },{
- xtype: 'label',
- forId : 'monthId',
- text: '月'
- },{
- fieldLabel: '日',
- flex: 1,
- inputId : 'dayId'
- },{
- xtype: 'label',
- forId : 'dayId',
- text: '日'
- }]
- },{
- fieldLabel:'產地來源'
- }]
- });
vtype示例:
- Ext.create('Ext.form.Panel',{
- title:'vtype示例',
- width : 300,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- defaultType: 'textfield',//設置表單字段的默認類型
- fieldDefaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 80,//標籤寬度
- width : 270,//字段寬度
- msgTarget : 'side'
- },
- items:[{
- fieldLabel:'電子郵件',
- vtype:'email'
- },{
- fieldLabel:'網址',
- vtype:'url'
- },{
- fieldLabel:'字母',
- vtype:'alpha'
- },{
- fieldLabel:'字母和數字',
- vtype:'alphanum'
- }]
- });
自定義電話號碼驗證示例:
- //自定義電話號碼的vtype驗證
- Ext.apply(Ext.form.field.VTypes, {
- phone: function(v) {
- //規則區號(3-4位數字)-電話號碼(7-8位數字)
- return /^(\d{3}-|\d{4}-)?(\d{8}|\d{7})$/.test(v);
- },
- phoneText: '請輸入有效的電話號碼',
- phoneMask: /[\d-]/i//只允許輸入數字和-號
- });
- Ext.QuickTips.init();
- Ext.create('Ext.form.Panel',{
- title:'自定義電話號碼驗證示例',
- width : 300,
- frame : true,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- defaultType: 'textfield',//設置表單字段的默認類型
- fieldDefaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 80,//標籤寬度
- width : 270,//字段寬度
- msgTarget : 'side'
- },
- items:[{
- fieldLabel:'住宅號碼',
- vtype:'phone'//使用電話類型驗證
- },{
- fieldLabel:'辦公號碼',
- vtype:'phone'//使用電話類型驗證
- }]
- });
自定義日期範圍驗證示例:
- //自定義VType類型,驗證日期選擇範圍
- Ext.apply(Ext.form.field.VTypes, {
- //驗證方法
- dateRange : function(val, field) {
- var beginDate = null,//開始日期
- beginDateCmp = null,//開始日期組件
- endDate = null,//結束日期
- endDateCmp = null,//結束日期組件
- validStatus = true;//驗證狀態
- if(field.dateRange){
- //獲取開始時間
- if(!Ext.isEmpty(field.dateRange.begin)){
- beginDateCmp = Ext.getCmp(field.dateRange.begin);
- beginDate = beginDateCmp.getValue();
- }
- //獲取結束時間
- if(!Ext.isEmpty(field.dateRange.end)){
- endDateCmp = Ext.getCmp(field.dateRange.end);
- endDate = endDateCmp.getValue();
- }
- }
- //如果開始日期或結束日期有一個爲空則校驗通過
- if(!Ext.isEmpty(beginDate) && !Ext.isEmpty(endDate)){
- validStatus = beginDate <= endDate;
- }
- return validStatus;
- },
- //驗證提示信息
- dateRangeText : '開始日期不能大於結束日期,請重新選擇。'
- });
- Ext.QuickTips.init();//初始化提示;
- var dateForm = Ext.create('Ext.form.Panel',{
- title:'自定義日期範圍驗證示例',
- frame : true,
- width:250,
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- fieldDefaults:{//統一設置表單字段默認屬性
- autoFitErrors : false,//不自動調整字段寬度
- labelSeparator :':',//分隔符
- labelWidth : 90,//標籤寬度
- width : 210,//字段寬度
- format:'Y年n月j日',//顯示日期的格式
- editable : false,//設置只讀
- allowBlank : false,//不允許爲空
- msgTarget : 'side'//設置提示信息展示位置
- },
- defaultType: 'datefield',//設置表單字段的默認類型
- items:[{
- id:'beginDate1',
- fieldLabel:'入學開始日期',
- dateRange:{begin:'beginDate1',end:'endDate1'},//用於vtype類型dateRange
- vtype:'dateRange'
- },{
- id:'endDate1',
- fieldLabel:'入學結束日期',
- dateRange:{begin:'beginDate1',end:'endDate1'},//用於vtype類型dateRange
- vtype:'dateRange'
- },{
- id:'beginDate2',
- fieldLabel:'畢業開始日期',
- dateRange:{begin:'beginDate2',end:'endDate2'},//用於vtype類型dateRange
- vtype:'dateRange'
- },{
- id:'endDate2',
- fieldLabel:'畢業結束日期',
- dateRange:{begin:'beginDate2',end:'endDate2'},//用於vtype類型dateRange
- vtype:'dateRange'
- }]
- });
Ajax模式的表單數據加載:
- <HTML>
- <HEAD>
- <TITLE>Ajax模式的表單數據加載</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="extjs4/resources/css/ext-all.css" />
- <script type="text/javascript" src="extjs4/bootstrap.js"></script>
- <script type="text/javascript" src="extjs4/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- Ext.QuickTips.init();//初始化提示;
- var productForm = Ext.create('Ext.form.Panel',{
- title:'表單加載示例',
- width : 300,
- frame : true,
- fieldDefaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 80,//標籤寬度
- width : 200
- },
- renderTo: Ext.getBody(),
- items:[{
- fieldLabel:'產品名稱',
- xtype : 'textfield',
- name : 'productName',
- value:'U盤'//同步加載數據
- },{
- fieldLabel:'金額',
- xtype : 'numberfield',
- name : 'price',
- value : 100//同步加載數據
- },{
- fieldLabel:'生產日期',
- xtype : 'datefield',
- format:'Y年m月d日',//顯示日期的格式
- name : 'date',
- value : new Date()//同步加載數據
- },{
- xtype : 'hidden',
- name : 'productId',
- value:'001'//產品id
- },{
- fieldLabel:'產品簡介',
- name : 'introduction',
- xtype : 'textarea'
- }],
- buttons:[{
- text : '加載簡介',
- handler : loadIntroduction
- }]
- });
- //表單加載數據的回調函數
- function loadIntroduction(){
- var params = productForm.getForm().getValues();
- productForm.getForm().load({
- params : params,//傳遞參數
- url : 'productServer.jsp',//請求的url地址
- method:'GET',//請求方式
- success:function(form,action){//加載成功的處理函數
- Ext.Msg.alert('提示','產品簡介加載成功');
- },
- failure:function(form,action){//加載失敗的處理函數
- Ext.Msg.alert('提示','產品簡介加載失敗<br>失敗原因:'+action.result.errorMessage);
- }
- });
- }
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px"></BODY>
- </HTML>
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <%
- //獲取產品id
- String productId = request.getParameter("productId");
- if("001".equals(productId)){
- String msg = "{success:true,data:{introduction:'本產品美觀實用,售後服務優秀。'}}";
- response.getWriter().write(msg);
- }else{
- String msg = "{success:false,errorMessage:'數據不存在'}";
- response.getWriter().write(msg);
- }
- %>
另外一種方式:
- public String getProductInfo(String productId)
- {
- String msg = "";
- if("001".equals(productId)){
- msg = "1本產品美觀實用,售後服務優秀。";
- }else{
- msg = "0數據不存在";
- }
- return msg;
- }
- //表單加載數據的回調函數
- function loadIntroduction(){
- var params = productForm.getForm().getValues();
- testdwr.getProductInfo(params.productId,function(ret){
- if(ret.substring(0,1) == '1')
- {
- Ext.getCmp('introduction').setValue(ret.substring(1,ret.length-1));
- Ext.Msg.alert('提示','產品簡介加載成功');
- }
- else
- {
- Ext.Msg.alert('提示','產品簡介加載失敗<br>失敗原因:'+ret.substring(1,ret.length-1));
- }
- });
- }
登錄簡單處理:
- <HTML>
- <HEAD>
- <TITLE>Ajax模式的表單數據提交</TITLE>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <link rel="stylesheet" type="text/css" href="extjs4/resources/css/ext-all.css" />
- <script type="text/javascript" src="extjs4/bootstrap.js"></script>
- <script type="text/javascript" src="extjs4/ext-lang-zh_CN.js"></script>
- <script type="text/javascript">
- Ext.onReady(function(){
- Ext.QuickTips.init();//初始化提示;
- var loginForm = Ext.create('Ext.form.Panel',{
- title:'表單提交示例',
- width : 230,
- frame : true,
- fieldDefaults:{//統一設置表單字段默認屬性
- labelSeparator :':',//分隔符
- labelWidth : 50,//標籤寬度
- msgTarget : 'side',
- width : 200
- },
- renderTo: Ext.getBody(),
- bodyPadding: 5,
- defaultType: 'textfield',//設置表單字段的默認類型
- items:[{
- fieldLabel:'用戶名',
- name : 'userName',
- allowBlank : false,
- vtype:'email'
- },{
- fieldLabel:'密碼',
- name : 'password',
- inputType : 'password',
- allowBlank : false
- }],
- buttons:[{
- text : '登陸',
- handler : login
- },{
- text : '重置',
- handler : reset
- }]
- });
- function login(){//提交表單
- loginForm.getForm().submit({
- clientValidation:true,//進行客戶端驗證
- url : 'loginServer.jsp',//請求的url地址
- method:'GET',//請求方式
- success:function(form,action){//加載成功的處理函數
- Ext.Msg.alert('提示','系統登陸成功');
- },
- failure:function(form,action){//加載失敗的處理函數
- Ext.Msg.alert('提示','系統登陸失敗,原因:'+action.failureType);
- }
- });
- }
- function reset(){//重置表單
- loginForm.form.reset();
- }
- });
- </script>
- </HEAD>
- <BODY STYLE="margin: 10px"></BODY>
- </HTML>
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <%
- String password = request.getParameter("password");
- String msg = "";
- if(password.length() < 6){//密碼不足6位驗證失敗
- msg = "{success:false,errors:{password:'密碼不得小於六位數字'}}";
- }else{//驗證成功
- msg = "{success:true}";
- }
- response.getWriter().write(msg);
- %>