Html代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <HTML>  
  2.  <HEAD>  
  3.   <TITLE>提示信息</TITLE>  
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  5.   <link rel="stylesheet" type="text/css" href="javascript:void(0)" />  
  6.   <script type="text/javascript" src="http://www.cnblogs.com/ext-4.0/bootstrap.js"></script>  
  7.   <script type="text/javascript" src="http://www.cnblogs.com/ext-4.0/locale/ext-lang-zh_CN.js"></script>  
  8.   <script type="text/javascript">  
  9.     Ext.onReady(function(){   
  10.         Ext.QuickTips.init();//初始化信息提示功能   
  11.         var form = new Ext.form.Panel({   
  12.             title:'表单',//表单标题   
  13.             height:120,//表单高度   
  14.             width:200,//表单宽度   
  15.             frame:true,//是否渲染表单   
  16.             renderTo :'form',   
  17.             defaults:{//统一设置表单字段默认属性   
  18.                 //autoFitErrors : false,//展示错误信息时是否自动调整字段组件宽度   
  19.                 labelSeparator :':',//分隔符   
  20.                 labelWidth : 50,//标签宽度   
  21.                 width : 150,//字段宽度   
  22.                 allowBlank : false,//是否允许为空   
  23.                 blankText : '不允许为空',   
  24.                 labelAlign : 'left',//标签对齐方式   
  25.                 msgTarget :'qtip'          //显示一个浮动的提示信息   
  26.                 //msgTarget :'title'       //显示一个浏览器原始的浮动提示信息   
  27.                 //msgTarget :'under'       //在字段下方显示一个提示信息   
  28.                 //msgTarget :'side'        //在字段的右边显示一个提示信息   
  29.                 //msgTarget :'none'        //不显示提示信息   
  30.                 //msgTarget :'errorMsg'    //在errorMsg元素内显示提示信息   
  31.             },   
  32.             items:[{   
  33.                 xtype : 'textfield',   
  34.                 fieldLabel : '姓名'//标签内容   
  35.             },{   
  36.                 xtype : 'numberfield',   
  37.                 fieldLabel : '年龄'   
  38.             }]   
  39.         });   
  40.     });   
  41.   </script>  
  42.  </HEAD>  
  43.  <BODY STYLE="margin: 10px">  
  44.     <div id='form'></div>  
  45.     <!-- 错误信息展示元素 -->  
  46.     <div id='errorMsg'></div>  
  47.  </BODY>  
  48. </HTML>  
<HTML>
<HEAD>
<TITLE>提示信息</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="javascript:void(0)" />
<script type="text/javascript" src="http://www.cnblogs.com/ext-4.0/bootstrap.js"></script>
<script type="text/javascript" src="http://www.cnblogs.com/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>


 




Html代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <div id='form'></div>  
<div id='form'></div>


 




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.QuickTips.init();   
  2.         var loginForm = Ext.create('Ext.form.Panel',{   
  3.             title:'Ext.form.field.Text示例',   
  4.             bodyStyle:'padding:5 5 5 5',//表单边距   
  5.             frame : true,   
  6.             height:120,   
  7.             width:200,   
  8.             renderTo :'form',   
  9.             defaultType: 'textfield',//设置表单字段的默认类型   
  10.             defaults:{//统一设置表单字段默认属性   
  11.                 labelSeparator :':',//分隔符   
  12.                 labelWidth : 50,//标签宽度   
  13.                 width : 150,//字段宽度   
  14.                 allowBlank : false,//是否允许为空   
  15.                 labelAlign : 'left',//标签对齐方式   
  16.                 msgTarget :'side'   //在字段的右边显示一个提示信息   
  17.             },   
  18.             items:[{   
  19.                     fieldLabel : '用户名',   
  20.                     name : 'userName',   
  21.                     selectOnFocus : true,//得到焦点时自动选择文本   
  22.                     //验证电子邮件格式的正则表达式   
  23.                     regex : /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,   
  24.                     regexText:'格式错误'//验证错误之后的提示信息,   
  25.                 },{   
  26.                     name : 'password',   
  27.                     fieldLabel : '密码',   
  28.                     inputType : 'password'//设置输入类型为password   
  29.                 }   
  30.             ],   
  31.             buttons:[{   
  32.                 text : '登陆',   
  33.                 handler : function(){   
  34.                     loginForm.form.setValues({userName:'user@com',password:'123456'});   
  35.                 }   
  36.             }]   
  37.         });  
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'});
}
}]
});


 




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.QuickTips.init();   
  2.         var testForm = Ext.create('Ext.form.Panel',{   
  3.             title:'Ext.form.field.TextArea示例',   
  4.             bodyStyle:'padding:5 5 5 5',//表单边距   
  5.             frame : true,   
  6.             height:150,   
  7.             width:250,   
  8.             renderTo :'form',  //<div id='form'></div>   
  9.             items:[{   
  10.                 xtype : 'textarea',   
  11.                 fieldLabel : '备注',   
  12.                 id:'memo',//字段组件id   
  13.                 labelSeparator :':',//分隔符   
  14.                 labelWidth : 60,//标签宽度   
  15.                 width:200   
  16.             }],   
  17.             buttons:[{text:'确定',handler:showValue}]   
  18.         })   
  19.         function showValue(){   
  20.             var memo = testForm.getForm().findField('memo');//取得输入控件   
  21.             alert(memo.getValue());//取得控件值   
  22.         }  
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());//取得控件值
}


 




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //Ext.form.field.Number示例   
  2.         Ext.QuickTips.init();   
  3.         var form = Ext.create('Ext.form.FormPanel',{   
  4.             title:'Ext.form.field.Number示例',   
  5.             bodyStyle:'padding:5 5 5 5',//表单边距   
  6.             renderTo :'form',   //<div id='form'></div>   
  7.             frame : true,   
  8.             height:150,   
  9.             width:250,   
  10.             defaultType: 'numberfield',//设置表单字段的默认类型   
  11.             defaults:{//统一设置表单字段默认属性   
  12.                 labelSeparator :':',//分隔符   
  13.                 labelWidth : 80,//标签宽度   
  14.                 width : 200,//字段宽度   
  15.                 labelAlign : 'left',//标签对齐方式   
  16.                 msgTarget :'side'   //在字段的右边显示一个提示信息   
  17.             },   
  18.             items:[{   
  19.                 fieldLabel:'整数',   
  20.                 hideTrigger : true,//隐藏微调按钮   
  21.                 allowDecimals : false,//不允许输入小数   
  22.                 nanText :'请输入有效的整数'//无效数字提示   
  23.             },{   
  24.                 fieldLabel:'小数',   
  25.                 decimalPrecision : 2,//精确到小数点后两位   
  26.                 allowDecimals : true,//允许输入小数   
  27.                 nanText :'请输入有效的小数'//无效数字提示   
  28.             },{   
  29.                 fieldLabel:'数字限制',   
  30.                 baseChars :'12345'//输入数字范围   
  31.             },{   
  32.                 fieldLabel:'数值限制',   
  33.                 maxValue : 100,//最大值   
  34.                 minValue : 50//最小值   
  35.             }]   
  36.         });  
//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//最小值
}]
});


触发字段:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //Ext.form.field.Trigger示例   
  2.         var testForm = Ext.create('Ext.form.Panel',{   
  3.             title:'Ext.form.field.Trigger示例',   
  4.             bodyStyle:'padding:5 5 5 5',//表单边距   
  5.             frame : true,   
  6.             height:100,   
  7.             width:270,   
  8.             renderTo :'form',   
  9.             defaults:{//统一设置表单字段默认属性   
  10.                 labelSeparator :':',//分隔符   
  11.                 labelWidth : 70,//标签宽度   
  12.                 width : 200,//字段宽度   
  13.                 labelAlign : 'left'//标签对齐方式   
  14.             },   
  15.             items:[{   
  16.                 xtype : 'triggerfield',   
  17.                 id:'memo',   
  18.                 fieldLabel:'触发字段',   
  19.                 hideTrigger : false,//不隐藏触发按钮   
  20.                 onTriggerClick : function(){   
  21.                     var memo = testForm.getForm().findField('memo');//取得输入控件   
  22.                     alert(memo.getValue());//取得控件值   
  23.                     Ext.getCmp('memo').setValue('test');   
  24.                 }   
  25.             }]   
  26.         });  
//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');
}
}]
});


微调字段




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //Ext.form.field.Spinner示例   
  2.         Ext.create('Ext.form.Panel',{   
  3.             title:'Ext.form.field.Spinner示例',   
  4.             bodyStyle:'padding:5 5 5 5',//表单边距   
  5.             frame : true,   
  6.             height:70,   
  7.             width:250,   
  8.             renderTo :'form',   
  9.             defaults:{//统一设置表单字段默认属性   
  10.                 labelSeparator :':',//分隔符   
  11.                 labelWidth : 70,//标签宽度   
  12.                 width : 200,//字段宽度   
  13.                 labelAlign : 'left'//标签对齐方式   
  14.             },   
  15.             items:[{   
  16.                 xtype : 'spinnerfield',   
  17.                 fieldLabel:'微调字段',   
  18.                 id : 'salary',//组件id   
  19.                 value : 100,//初始化字段值   
  20.                 onSpinUp : function(){   
  21.                     var salaryCmp = Ext.getCmp('salary');//通过组件id获取组件对象   
  22.                     //增加默认值   
  23.                     salaryCmp.setValue(Number(salaryCmp.getValue()) + 1);   
  24.                 },   
  25.                 onSpinDown : function(){   
  26.                     var salaryCmp = Ext.getCmp('salary');   
  27.                     //减小默认值   
  28.                     salaryCmp.setValue(Number(salaryCmp.getValue()) - 1);   
  29.                 }   
  30.             }]   
  31.         });  
//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本地数据源示例




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //Ext.form.field.ComboBox本地数据源示例   
  2.         //创建数据模型   
  3.         Ext.regModel('PostInfo', {   
  4.             fields: [{name: 'province'},{name: 'post'}]   
  5.         });   
  6.         //定义组合框中显示的数据源   
  7.         var postStore = Ext.create('Ext.data.Store',{   
  8.             model : 'PostInfo',   
  9.             data : [   
  10.                 {province:'北京',post:'100000'},   
  11.                 {province:'通县',post:'101100'},   
  12.                 {province:'昌平',post:'102200'},   
  13.                 {province:'大兴',post:'102600'},   
  14.                 {province:'密云',post:'101500'},   
  15.                 {province:'延庆',post:'102100'},   
  16.                 {province:'顺义',post:'101300'},   
  17.                 {province:'怀柔',post:'101400'}   
  18.             ]   
  19.         });   
  20.         //创建表单   
  21.         Ext.create('Ext.form.Panel',{   
  22.             title:'Ext.form.field.ComboBox本地数据源示例',   
  23.             renderTo: Ext.getBody(),   
  24.             bodyPadding: 5,   
  25.             frame : true,   
  26.             height:100,   
  27.             width:270,   
  28.             defaults:{//统一设置表单字段默认属性   
  29.                 labelSeparator :':',//分隔符   
  30.                 labelWidth : 70,//标签宽度   
  31.                 width : 200,//字段宽度   
  32.                 labelAlign : 'left'//标签对齐方式   
  33.             },   
  34.             items:[{   
  35.                 xtype : 'combo',   
  36.                 listConfig : {   
  37.                     emptyText : '未找到匹配值',//当值不在列表是的提示信息   
  38.                     maxHeight : 60//设置下拉列表的最大高度为60像素   
  39.                 },   
  40.                 name:'post',   
  41.                 autoSelect : true,   
  42.                 fieldLabel:'邮政编码',   
  43.                 triggerAction: 'all',//单击触发按钮显示全部数据   
  44.                 store : postStore,//设置数据源   
  45.                 displayField:'province',//定义要显示的字段   
  46.                 valueField:'post',//定义值字段   
  47.                 queryMode: 'local',//本地模式   
  48.                 forceSelection : true,//要求输入值必须在列表中存在   
  49.                 typeAhead : true,//允许自动选择匹配的剩余部分文本   
  50.                 value:'102600'//默认选择大兴   
  51.             }]   
  52.         });  
//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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.field.Time示例',   
  3.             renderTo: Ext.getBody(),   
  4.             bodyPadding: 5,   
  5.             frame : true,   
  6.             height:100,   
  7.             width:300,   
  8.             items:[{   
  9.                 fieldLabel:'时间选择框',   
  10.                 xtype : 'timefield',   
  11.                 width : 220,   
  12.                 labelSeparator :':',//分隔符   
  13.                 msgTarget :'side',//在字段的右边显示一个提示信息   
  14.                 autoFitErrors : false,//展示错误信息时是否自动调整字段组件宽度   
  15.                 maxValue : '18:00',//最大时间   
  16.                 maxText : '时间应小于{0}',//大于最大时间的提示信息   
  17.                 minValue : '10:00',//最小时间   
  18.                 minText : '时间应大于{0}',//小于最小时间的提示信息   
  19.                 pickerMaxHeight : 70,//下拉列表的最大高度   
  20.                 increment : 60,//时间间隔为60分钟   
  21.                 format : 'G时i分s秒 ',//G标示为24时计时法   
  22.                 invalidText :'时间格式无效'  
  23.             }]   
  24.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.field.Time示例',   
  3.             renderTo: Ext.getBody(),   
  4.             bodyPadding: 5,   
  5.             frame : true,   
  6.             height:100,   
  7.             width:300,   
  8.             items:[{   
  9.                 fieldLabel:'时间选择框',   
  10.                 xtype : 'timefield',   
  11.                 width : 220,   
  12.                 labelSeparator :':',//分隔符   
  13.                 msgTarget :'side',//在字段的右边显示一个提示信息   
  14.                 autoFitErrors : false,//展示错误信息时是否自动调整字段组件宽度   
  15.                 maxValue : '18:00',//最大时间   
  16.                 maxText : '时间应小于{0}',//大于最大时间的提示信息   
  17.                 minValue : '10:00',//最小时间   
  18.                 minText : '时间应大于{0}',//小于最小时间的提示信息   
  19.                 pickerMaxHeight : 70,//下拉列表的最大高度   
  20.                 increment : 60,//时间间隔为60分钟   
  21.                 format : 'G时i分s秒 ',//G标示为24时计时法   
  22.                 invalidText :'时间格式无效'  
  23.             }]   
  24.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.field.Hidden示例',   
  3.             frame : true,   
  4.             height:100,   
  5.             width:300,   
  6.             renderTo: Ext.getBody(),   
  7.             bodyPadding: 5,   
  8.             defaultType: 'textfield',//设置表单字段的默认类型   
  9.             defaults:{//统一设置表单字段默认属性   
  10.                 labelSeparator :':',//分隔符   
  11.                 labelWidth : 70,//标签宽度   
  12.                 width : 200,//字段宽度   
  13.                 labelAlign : 'left'//标签对齐方式   
  14.             },   
  15.             items:[{   
  16.                 name:'userName',   
  17.                 fieldLabel:'姓名'  
  18.             },{//隐藏域   
  19.                 name:'age',   
  20.                 xtype : 'hidden'  
  21.             },{   
  22.                 name:'sex',   
  23.                 fieldLabel:'性别'  
  24.             }]   
  25.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.field.HtmlEditor示例',   
  3.             width : 630,   
  4.             frame : true,   
  5.             renderTo: Ext.getBody(),   
  6.             bodyPadding: 5,   
  7.             items:[{   
  8.                 fieldLabel:'HTML字段',   
  9.                 xtype : 'htmleditor',   
  10.                 height:150,   
  11.                 width : 600,   
  12.                 value : 'ExtJS4登场',   
  13.                 labelWidth : 70,//标签宽度   
  14.                 labelSeparator :':',//分隔符   
  15.                 createLinkText : '创建超链接',//创建连接的提示信息   
  16.                 defaultLinkValue : "http://www.",//连接的默认格式   
  17.                 enableAlignments : true,//起用左、中、右对齐按钮   
  18.                 enableColors : true,//起用前景色、背景色选择按钮   
  19.                 enableFont : true,//起用字体选择按钮   
  20.                 enableFontSize : true,//起用字体增大和缩写按钮   
  21.                 enableFormat : true,//起用粗体、斜体、下划线按钮   
  22.                 enableLinks : true,//起用创建连接按钮   
  23.                 enableLists : true,//起用列表按钮   
  24.                 enableSourceEdit : true,//起用源代码编辑按钮   
  25.                 fontFamilies:['宋体','隶书','黑体'],//字体列表   
  26.                 buttonTips :{   
  27.                     bold : {   
  28.                         title: 'Bold (Ctrl+B)',   
  29.                         text: '粗体'  
  30.                     },   
  31.                     italic : {   
  32.                         title: 'Italic (Ctrl+I)',   
  33.                         text: '斜体'  
  34.                     },   
  35.                     underline : {   
  36.                         title: 'Underline (Ctrl+U)',   
  37.                         text: '下划线'  
  38.                     },   
  39.                     increasefontsize : {   
  40.                         title: 'Grow Text',   
  41.                         text: '增大字体'  
  42.                     },   
  43.                     decreasefontsize : {   
  44.                         title: 'Shrink Text',   
  45.                         text: '缩小字体'  
  46.                     },   
  47.                     backcolor : {   
  48.                         title: 'Text Highlight Color',   
  49.                         text: '背景色'  
  50.                     },   
  51.                     forecolor : {   
  52.                         title: 'Font Color',   
  53.                         text: '前景色'  
  54.                     },   
  55.                     justifyleft : {   
  56.                         title: 'Align Text Left',   
  57.                         text: '左对齐'  
  58.                     },   
  59.                     justifycenter : {   
  60.                         title: 'Center Text',   
  61.                         text: '居中对齐'  
  62.                     },   
  63.                     justifyright : {   
  64.                         title: 'Align Text Right',   
  65.                         text: '右对齐'  
  66.                     },   
  67.                     insertunorderedlist : {   
  68.                         title: 'Bullet List',   
  69.                         text: '项目符号'  
  70.                     },   
  71.                     insertorderedlist : {   
  72.                         title: 'Numbered List',   
  73.                         text: '数字编号'  
  74.                     },   
  75.                     createlink : {   
  76.                         title: 'Hyperlink',   
  77.                         text: '超连接'  
  78.                     },   
  79.                     sourceedit : {   
  80.                         title: 'Source Edit',   
  81.                         text: '切换源代码编辑模式'  
  82.                     }   
  83.                 }   
  84.             }]   
  85.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.field.Display示例',   
  3.             width : 200,   
  4.             frame : true,   
  5.             renderTo: Ext.getBody(),   
  6.             bodyPadding: 5,   
  7.             items:[{   
  8.                 fieldLabel:'展示字段',   
  9.                 xtype : 'displayfield',   
  10.                 value : '<b>ExtJS4登场</b>',   
  11.                 labelWidth : 70,//标签宽度   
  12.                 labelSeparator :':'//分隔符   
  13.             }]   
  14.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.Label示例',   
  3.             width : 200,   
  4.             frame : true,   
  5.             renderTo: Ext.getBody(),   
  6.             bodyPadding: 5,   
  7.             items:[ {   
  8.                 xtype: 'label',   
  9.                 forId: 'userName',//关联inputId为userName的表单字段   
  10.                 text: '用户名'  
  11.             },{   
  12.                 name:'userName',   
  13.                 xtype : 'textfield',   
  14.                 inputId : 'userName',   
  15.                 hideLabel : true //隐藏字段标签   
  16.             }]   
  17.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.FieldSet示例',   
  3.             labelWidth : 40,//标签宽度   
  4.             width : 220,   
  5.             frame : true,   
  6.             renderTo: Ext.getBody(),   
  7.             bodyPadding: 5,   
  8.             items:[{   
  9.                 title:'产品信息',   
  10.                 xtype : 'fieldset',   
  11.                 collapsible : true,//显示切换展开收缩状态的切换按钮   
  12.                 bodyPadding: 5,   
  13.                 defaults:{//统一设置表单字段默认属性   
  14.                     labelSeparator :':',//分隔符   
  15.                     labelWidth : 50,//标签宽度   
  16.                     width : 160//字段宽度   
  17.                 },   
  18.                 defaultType: 'textfield',//设置表单字段的默认类型   
  19.                 items:[{   
  20.                     fieldLabel:'产地'  
  21.                 },{   
  22.                     fieldLabel:'售价'  
  23.                 }]   
  24.             },{   
  25.                 title:'产品描述',   
  26.                 xtype : 'fieldset',   
  27.                 bodyPadding: 5,   
  28.                 checkboxToggle : true,//显示切换展开收缩状态的复选框   
  29.                 checkboxName : 'description',//提交数据时复选框对应的name   
  30.                 labelSeparator :':',//分隔符   
  31.                 items:[{   
  32.                     fieldLabel:'简介',   
  33.                     labelSeparator :':',//分隔符   
  34.                     labelWidth : 50,//标签宽度   
  35.                     width : 160,//字段宽度   
  36.                     xtype : 'textarea'  
  37.                 }]   
  38.             }]   
  39.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'Ext.form.FieldContainer示例',   
  3.             width : 300,   
  4.             frame : true,   
  5.             renderTo: Ext.getBody(),   
  6.             bodyPadding: 5,   
  7.             fieldDefaults:{//统一设置表单字段默认属性   
  8.                 labelSeparator :':',//分隔符   
  9.                 labelWidth : 60,//标签宽度   
  10.                 width : 260,//字段宽度   
  11.                 msgTarget : 'side'  
  12.             },   
  13.             defaultType: 'textfield',//设置表单字段的默认类型   
  14.             items:[{   
  15.                 fieldLabel:'商品名称'  
  16.             },{   
  17.                 xtype: 'fieldcontainer',   
  18.                 fieldLabel: '生产日期',   
  19.                 layout: {//设置容器字段布局   
  20.                     type: 'hbox',   
  21.                     align: 'middle'//垂直居中   
  22.                 },   
  23.                 combineErrors : true,//合并展示错误信息   
  24.                 fieldDefaults: {   
  25.                     hideLabel: true,//隐藏字段标签   
  26.                     allowBlank : false//设置字段值不允许为空   
  27.                 },   
  28.                 defaultType: 'textfield',//设置表单字段的默认类型   
  29.                 items: [{   
  30.                     fieldLabel: '年',   
  31.                     flex: 1,   
  32.                     inputId : 'yearId'  
  33.                 },{   
  34.                     xtype: 'label',   
  35.                     forId : 'yearId',   
  36.                     text: '年'  
  37.                 },{   
  38.                     fieldLabel: '月',   
  39.                     flex: 1,   
  40.                     inputId : 'monthId'  
  41.                 },{   
  42.                     xtype: 'label',   
  43.                     forId : 'monthId',   
  44.                     text: '月'  
  45.                 },{   
  46.                     fieldLabel: '日',   
  47.                     flex: 1,   
  48.                     inputId : 'dayId'  
  49.                 },{   
  50.                     xtype: 'label',   
  51.                     forId : 'dayId',   
  52.                     text: '日'  
  53.                 }]   
  54.             },{   
  55.                 fieldLabel:'产地来源'  
  56.             }]   
  57.         });  
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示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. Ext.create('Ext.form.Panel',{   
  2.             title:'vtype示例',   
  3.             width : 300,   
  4.             frame : true,   
  5.             renderTo: Ext.getBody(),   
  6.             bodyPadding: 5,   
  7.             defaultType: 'textfield',//设置表单字段的默认类型   
  8.             fieldDefaults:{//统一设置表单字段默认属性   
  9.                 labelSeparator :':',//分隔符   
  10.                 labelWidth : 80,//标签宽度   
  11.                 width : 270,//字段宽度   
  12.                 msgTarget : 'side'  
  13.             },   
  14.             items:[{   
  15.                 fieldLabel:'电子邮件',   
  16.                 vtype:'email'  
  17.             },{   
  18.                 fieldLabel:'网址',   
  19.                 vtype:'url'  
  20.             },{   
  21.                 fieldLabel:'字母',   
  22.                 vtype:'alpha'  
  23.             },{   
  24.                 fieldLabel:'字母和数字',   
  25.                 vtype:'alphanum'  
  26.             }]   
  27.         });  
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'
}]
});


自定义电话号码验证示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //自定义电话号码的vtype验证   
  2.         Ext.apply(Ext.form.field.VTypes, {   
  3.             phone:  function(v) {   
  4.                 //规则区号(3-4位数字)-电话号码(7-8位数字)   
  5.                 return /^(\d{3}-|\d{4}-)?(\d{8}|\d{7})$/.test(v);   
  6.             },   
  7.             phoneText: '请输入有效的电话号码',   
  8.             phoneMask: /[\d-]/i//只允许输入数字和-号   
  9.         });   
  10.         Ext.QuickTips.init();   
  11.         Ext.create('Ext.form.Panel',{   
  12.             title:'自定义电话号码验证示例',   
  13.             width : 300,   
  14.             frame : true,   
  15.             renderTo: Ext.getBody(),   
  16.             bodyPadding: 5,   
  17.             defaultType: 'textfield',//设置表单字段的默认类型   
  18.             fieldDefaults:{//统一设置表单字段默认属性   
  19.                 labelSeparator :':',//分隔符   
  20.                 labelWidth : 80,//标签宽度   
  21.                 width : 270,//字段宽度   
  22.                 msgTarget : 'side'  
  23.             },   
  24.             items:[{   
  25.                 fieldLabel:'住宅号码',   
  26.                 vtype:'phone'//使用电话类型验证   
  27.             },{   
  28.                 fieldLabel:'办公号码',   
  29.                 vtype:'phone'//使用电话类型验证   
  30.             }]   
  31.         });  
//自定义电话号码的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'//使用电话类型验证
}]
});


自定义日期范围验证示例:




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //自定义VType类型,验证日期选择范围   
  2.         Ext.apply(Ext.form.field.VTypes, {   
  3.             //验证方法   
  4.             dateRange : function(val, field) {   
  5.                 var beginDate = null,//开始日期   
  6.                     beginDateCmp = null,//开始日期组件   
  7.                     endDate = null,//结束日期   
  8.                     endDateCmp = null,//结束日期组件   
  9.                     validStatus = true;//验证状态   
  10.                 if(field.dateRange){   
  11.                     //获取开始时间   
  12.                     if(!Ext.isEmpty(field.dateRange.begin)){   
  13.                         beginDateCmp = Ext.getCmp(field.dateRange.begin);   
  14.                         beginDate = beginDateCmp.getValue();   
  15.                     }   
  16.                     //获取结束时间   
  17.                     if(!Ext.isEmpty(field.dateRange.end)){   
  18.                         endDateCmp = Ext.getCmp(field.dateRange.end);   
  19.                         endDate = endDateCmp.getValue();   
  20.                     }   
  21.                 }   
  22.                 //如果开始日期或结束日期有一个为空则校验通过   
  23.                 if(!Ext.isEmpty(beginDate) && !Ext.isEmpty(endDate)){   
  24.                     validStatus =  beginDate <= endDate;   
  25.                 }   
  26.                    
  27.                 return validStatus;   
  28.             },   
  29.             //验证提示信息   
  30.             dateRangeText : '开始日期不能大于结束日期,请重新选择。'  
  31.         });   
  32.         Ext.QuickTips.init();//初始化提示;   
  33.         var dateForm = Ext.create('Ext.form.Panel',{   
  34.             title:'自定义日期范围验证示例',   
  35.             frame : true,   
  36.             width:250,   
  37.             renderTo: Ext.getBody(),   
  38.             bodyPadding: 5,   
  39.             fieldDefaults:{//统一设置表单字段默认属性   
  40.                 autoFitErrors : false,//不自动调整字段宽度   
  41.                 labelSeparator :':',//分隔符   
  42.                 labelWidth : 90,//标签宽度   
  43.                 width : 210,//字段宽度   
  44.                 format:'Y年n月j日',//显示日期的格式   
  45.                 editable : false,//设置只读   
  46.                 allowBlank : false,//不允许为空   
  47.                 msgTarget : 'side'//设置提示信息展示位置   
  48.             },   
  49.             defaultType: 'datefield',//设置表单字段的默认类型   
  50.             items:[{   
  51.                 id:'beginDate1',   
  52.                 fieldLabel:'入学开始日期',   
  53.                 dateRange:{begin:'beginDate1',end:'endDate1'},//用于vtype类型dateRange   
  54.                 vtype:'dateRange'  
  55.             },{   
  56.                 id:'endDate1',   
  57.                 fieldLabel:'入学结束日期',   
  58.                 dateRange:{begin:'beginDate1',end:'endDate1'},//用于vtype类型dateRange   
  59.                 vtype:'dateRange'  
  60.             },{   
  61.                 id:'beginDate2',   
  62.                 fieldLabel:'毕业开始日期',   
  63.                 dateRange:{begin:'beginDate2',end:'endDate2'},//用于vtype类型dateRange   
  64.                 vtype:'dateRange'  
  65.             },{   
  66.                 id:'endDate2',   
  67.                 fieldLabel:'毕业结束日期',   
  68.                 dateRange:{begin:'beginDate2',end:'endDate2'},//用于vtype类型dateRange   
  69.                 vtype:'dateRange'  
  70.             }]   
  71.         });  
//自定义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代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <HTML>  
  2.  <HEAD>  
  3.   <TITLE>Ajax模式的表单数据加载</TITLE>  
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  5.   <link rel="stylesheet" type="text/css" href="extjs4/resources/css/ext-all.css" />  
  6.   <script type="text/javascript" src="extjs4/bootstrap.js"></script>  
  7.   <script type="text/javascript" src="extjs4/ext-lang-zh_CN.js"></script>  
  8.   <script type="text/javascript">  
  9.     Ext.onReady(function(){   
  10.         Ext.QuickTips.init();//初始化提示;   
  11.         var productForm = Ext.create('Ext.form.Panel',{   
  12.             title:'表单加载示例',   
  13.             width : 300,   
  14.             frame : true,   
  15.             fieldDefaults:{//统一设置表单字段默认属性   
  16.                 labelSeparator :':',//分隔符   
  17.                 labelWidth : 80,//标签宽度   
  18.                 width : 200   
  19.             },   
  20.             renderTo: Ext.getBody(),   
  21.             items:[{   
  22.                 fieldLabel:'产品名称',   
  23.                 xtype : 'textfield',   
  24.                 name : 'productName',   
  25.                 value:'U盘'//同步加载数据   
  26.             },{   
  27.                 fieldLabel:'金额',   
  28.                 xtype : 'numberfield',   
  29.                 name : 'price',   
  30.                 value : 100//同步加载数据   
  31.             },{   
  32.                 fieldLabel:'生产日期',   
  33.                 xtype : 'datefield',   
  34.                 format:'Y年m月d日',//显示日期的格式   
  35.                 name : 'date',   
  36.                 value : new Date()//同步加载数据   
  37.             },{   
  38.                 xtype : 'hidden',   
  39.                 name : 'productId',   
  40.                 value:'001'//产品id   
  41.             },{   
  42.                 fieldLabel:'产品简介',   
  43.                 name : 'introduction',   
  44.                 xtype : 'textarea'   
  45.             }],   
  46.             buttons:[{   
  47.                 text : '加载简介',   
  48.                 handler : loadIntroduction   
  49.             }]   
  50.         });   
  51.         //表单加载数据的回调函数   
  52.         function loadIntroduction(){   
  53.             var params = productForm.getForm().getValues();   
  54.             productForm.getForm().load({   
  55.                 params : params,//传递参数   
  56.                 url : 'productServer.jsp',//请求的url地址   
  57.                 method:'GET',//请求方式   
  58.                 success:function(form,action){//加载成功的处理函数   
  59.                     Ext.Msg.alert('提示','产品简介加载成功');   
  60.                 },   
  61.                 failure:function(form,action){//加载失败的处理函数   
  62.                     Ext.Msg.alert('提示','产品简介加载失败<br>失败原因:'+action.result.errorMessage);   
  63.                 }   
  64.             });   
  65.         }   
  66.     });   
  67.   </script>  
  68.  </HEAD>  
  69.  <BODY STYLE="margin: 10px"></BODY>  
  70. </HTML>  
<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>




Jsp代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>   
  2. <%   
  3. //获取产品id   
  4. String productId = request.getParameter("productId");   
  5. if("001".equals(productId)){   
  6.     String msg = "{success:true,data:{introduction:'本产品美观实用,售后服务优秀。'}}";   
  7.     response.getWriter().write(msg);   
  8. }else{   
  9.     String msg = "{success:false,errorMessage:'数据不存在'}";   
  10.     response.getWriter().write(msg);   
  11. }   
  12. %>  
<%@ 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);
}
%>



另外一种方式:




Java代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. public String getProductInfo(String productId)   
  2.     {   
  3.         String msg = "";   
  4.         if("001".equals(productId)){   
  5.             msg = "1本产品美观实用,售后服务优秀。";   
  6.         }else{   
  7.             msg = "0数据不存在";   
  8.         }   
  9.         return msg;   
  10.     }  
public String getProductInfo(String productId)
{
String msg = "";
if("001".equals(productId)){
msg = "1本产品美观实用,售后服务优秀。";
}else{
msg = "0数据不存在";
}
return msg;
}


 




Javascript代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. //表单加载数据的回调函数   
  2.         function loadIntroduction(){   
  3.             var params = productForm.getForm().getValues();   
  4.             testdwr.getProductInfo(params.productId,function(ret){   
  5.                 if(ret.substring(0,1) == '1')   
  6.                 {   
  7.                     Ext.getCmp('introduction').setValue(ret.substring(1,ret.length-1));   
  8.                     Ext.Msg.alert('提示','产品简介加载成功');   
  9.                 }   
  10.                 else  
  11.                 {   
  12.                     Ext.Msg.alert('提示','产品简介加载失败<br>失败原因:'+ret.substring(1,ret.length-1));   
  13.                 }   
  14.             });   
  15.         }  
//表单加载数据的回调函数
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代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <HTML>  
  2.  <HEAD>  
  3.   <TITLE>Ajax模式的表单数据提交</TITLE>  
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  5.   <link rel="stylesheet" type="text/css" href="extjs4/resources/css/ext-all.css" />  
  6.   <script type="text/javascript" src="extjs4/bootstrap.js"></script>  
  7.   <script type="text/javascript" src="extjs4/ext-lang-zh_CN.js"></script>  
  8.   <script type="text/javascript">  
  9.     Ext.onReady(function(){   
  10.         Ext.QuickTips.init();//初始化提示;   
  11.         var loginForm = Ext.create('Ext.form.Panel',{   
  12.             title:'表单提交示例',   
  13.             width : 230,   
  14.             frame : true,   
  15.             fieldDefaults:{//统一设置表单字段默认属性   
  16.                 labelSeparator :':',//分隔符   
  17.                 labelWidth : 50,//标签宽度   
  18.                 msgTarget : 'side',   
  19.                 width : 200   
  20.             },   
  21.             renderTo: Ext.getBody(),   
  22.             bodyPadding: 5,   
  23.             defaultType: 'textfield',//设置表单字段的默认类型   
  24.             items:[{   
  25.                 fieldLabel:'用户名',   
  26.                 name : 'userName',   
  27.                 allowBlank : false,   
  28.                 vtype:'email'   
  29.             },{   
  30.                 fieldLabel:'密码',   
  31.                 name : 'password',   
  32.                 inputType : 'password',   
  33.                 allowBlank : false   
  34.             }],   
  35.             buttons:[{   
  36.                 text : '登陆',   
  37.                 handler : login   
  38.             },{   
  39.                 text : '重置',   
  40.                 handler : reset   
  41.             }]   
  42.         });   
  43.         function login(){//提交表单   
  44.             loginForm.getForm().submit({   
  45.                 clientValidation:true,//进行客户端验证   
  46.                 url : 'loginServer.jsp',//请求的url地址   
  47.                 method:'GET',//请求方式   
  48.                 success:function(form,action){//加载成功的处理函数   
  49.                     Ext.Msg.alert('提示','系统登陆成功');   
  50.                 },   
  51.                 failure:function(form,action){//加载失败的处理函数   
  52.                     Ext.Msg.alert('提示','系统登陆失败,原因:'+action.failureType);   
  53.                 }   
  54.             });   
  55.         }   
  56.         function reset(){//重置表单   
  57.             loginForm.form.reset();   
  58.         }   
  59.     });   
  60.   </script>  
  61.  </HEAD>  
  62.  <BODY  STYLE="margin: 10px"></BODY>  
  63. </HTML>  
<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>




Jsp代码 ​extjs4表单_extjs4​ extjs4表单_表单_02extjs4表单_提示信息_03


  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>   
  2. <%   
  3.     String password = request.getParameter("password");   
  4.     String msg = "";   
  5.     if(password.length() < 6){//密码不足6位验证失败   
  6.         msg = "{success:false,errors:{password:'密码不得小于六位数字'}}";   
  7.     }else{//验证成功   
  8.         msg = "{success:true}";   
  9.     }   
  10.     response.getWriter().write(msg);   
  11. %>