|  | 
				
					
	
		
		
		 <HTML> 
  <HEAD> 
  <TITLE> date form validation .etc </TITLE> 
  <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" /> 
  <script type="text/javascript" src="../../../adapter/ext/ext-base.js"></script> 
  <script type="text/javascript" src="../../../ext-all-debug.js"></script> 
   <script>  
  //将新属性daterange,password,添加到form.Vtypes 
   Ext.apply(Ext.form.VTypes,  { 
   daterange : function(val, field)  { 
  var date = field.parseDate(val); 
  
   if(!date)  { 
  return; 
  } 
   if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime())))  { 
  var start = Ext.getCmp(field.startDateField); 
  start.setMaxValue(date); 
  start.validate(); 
  this.dateRangeMax = date; 
  } 
   else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime())))  { 
  var end = Ext.getCmp(field.endDateField); 
  end.setMinValue(date); 
  end.validate(); 
  this.dateRangeMin = date; 
  } 
  return true; 
  }, 
  
  password : function(val, field) 
     { 
   if (field.initialPassField)  { 
  var pwd = Ext.getCmp(field.initialPassField); 
  return (val == pwd.getValue()); 
  } 
  return true; 
  }, 
  
  passwordText : '两次密码输入不一致' 
  }); 
  
  
   Ext.onReady(function()  { 
  //开始验证提示 
  Ext.QuickTips.init(); 
  
  // 将验证信息显示在旁边 
  Ext.form.Field.prototype.msgTarget = 'side'; 
  
  var bd = Ext.getBody(); 
  
  var dr = new Ext.FormPanel( 
     { 
  labelWidth: 120, //标签显示宽度 
  frame: true,   //is frame 
  title: '日期选择范围', 
  width: 350, 
   defaults:  {width: 175}, 
  defaultType: 'datefield', 
  renderTo : 'dr', 
  allowDomMove : true, 
   items: [  { 
  fieldLabel: '开始日期', 
  id: 'startdt', 
  vtype: 'daterange', 
  endDateField: 'enddt' //结束日期的id(开始日期小于结束日期) 
   },  { 
  fieldLabel: '结束日期', 
  id: 'enddt', 
  vtype: 'daterange', 
  startDateField: 'startdt' //开始日期的id 
  }] 
  }); 
  
   
  //构建一个密码Form 
   var pwd = new Ext.FormPanel(  { 
  labelWidth: 125, 
  frame: true, 
  title: '密码验证框', 
  width: 350, 
  renderTo : 'pw', 
  allowDomMove : true, 
  draggable : true, 
   defaults:  { 
  width: 175, 
  inputType: 'password' 
  }, 
  defaultType: 'textfield', 
   items: [  { 
  fieldLabel: '密码:', 
  name: 'pass', 
  id: 'pass' 
   },  { 
  fieldLabel: '密码确认:', 
  name: 'pass-cfrm', 
  vtype: 'password', 
  initialPassField: 'pass' 
  }] 
  }); 
   
  //构造一个window容器 
   var window = new Ext.Window(  { 
  x : 200, 
  y : 200, 
  maximizable : true, //显示最大化按钮 
  minimizable : true, //显示最小化按钮 
  //autoWidth : true, 
  width : 350, 
  width : 400, 
  //autoHeight : true, 
  title : '测试窗口', 
  renderTo : 'd', 
  resizable : true, 
  items : [dr,pwd] 
  }); 
  window.show(); 
  //构建两个按钮 
   new Ext.Button(  { 
  text : '显示', 
  renderTo : 'b1', 
  handler : function() 
     { 
  window.show(); 
  } 
  }); 
  
   new Ext.Button(  { 
  text : '隐藏', 
  renderTo : 'b2', 
  handler : function() 
     { 
  window.hide(); 
  } 
  }); 
   
  
  }); 
  </script> 
  </HEAD> 
  <BODY> 
  <div id='b1'></div> 
  <div id='b2'></div> 
  <div id='d'></div> 
  <div id='dr'></div> 
  <div id='pw'  style="padding-top:20px"></div> 
  </BODY> 
  </HTML> 
 
效果图:
     |