ExtJs4 日期范围验证

问题描述

日期验证代码(参照的ExtJs4 的例子:ext-4.0.1-gpl/ext-4.0.1/examples/form/adv-vtypes.html):Ext.apply(Ext.form.field.VTypes, { daterange: function(val, field) { var date = field.parseDate(val); if (!date) { return false; } if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) { var start = field.up('form').down('#' + field.startDateField); start.setMaxValue(date); start.validate(); this.dateRangeMax = date; }else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) { var end = field.up('form').down('#' + field.endDateField); end.setMinValue(date); end.validate(); this.dateRangeMin = date; } /* * Always return true since we're only using this vtype to set the * min/max allowed values (these are tested for after the vtype test) */ return true; }, daterangeText: 'Start date must be less than end date' }); 在日期中使用上面的验证:{ xtype: 'container', fieldLabel: 'Name', hideLabel:false, layout: 'hbox', combineErrors: true, defaults: { hideLabel: 'true' }, items: [{ fieldLabel: '关系建立开始', hideLabel:false, editable:false, name: 'searchMarginBeginStart', id: 'searchMarginBeginStart', vtype: 'daterange', // xtype: 'datefield', format:'Y-m-d', width: 300, endDateField: 'searchMarginBeginEnd', // listeners:{ specialkey:function(field,e){ var keyCode = e.getKey(); if(keyCode == e.BACKSPACE){ if(!this.editable){ e.stopEvent(); return false; } } } } }, { fieldLabel: '关系建立结束', hideLabel:false, editable:false, name: 'searchMarginBeginEnd', id: 'searchMarginBeginEnd', vtype: 'daterange', // xtype: 'datefield', format:'Y-m-d', width: 300, startDateField: 'searchMarginBeginStart', // listeners:{ specialkey:function(field,e){ var keyCode = e.getKey(); if(keyCode == e.BACKSPACE){ if(!this.editable){ e.stopEvent(); return false; } } } } }] } 选好时间后,点击查询,ie提示这个ie溢出是为什么?

解决方案

给个方法你:Ext.apply(Ext.form.VTypes,{//自定义验证dateCompar:function(complaintEndDate,field){if(field.confirmTo){//要比较的另外一个组件,如果存在进行比较var complaintBeginDate = Ext.get(field.confirmTo).getValue();//得到比较组件return dateCompar(complaintBeginDate,complaintEndDate);}}});function dateCompar(dateOne,dateTwo){//如果开始和结束时间都不为空,进行比较if(Ext.util.Format.trim(dateOne).length > 0 && Ext.util.Format.trim(dateTwo).length > 0){dateOne = dateOne.replace(/-/g,"/");dateTwo = dateTwo.replace(/-/g,"/");if(Date.parse(dateOne) > Date.parse(dateTwo)){return false;}else{return true;}}else{return true;}}
解决方案二:
你在这个控件fieldLabel: '关系建立开始', vtype: 'daterange', 做了一次验证,然后又在下面 fieldLabel: '关系建立结束', 做了一次比较,你已经对format:'Y-m-d',进行了验证控制,就不需要证明是否是格式正确,你需要比较的就是后面的时间不能大于前面的时间而已

时间: 2025-01-26 15:08:26

ExtJs4 日期范围验证的相关文章

php提取身份证号码中的生日日期以及验证是否为成年人的函数_php实例

php 提取身份证号码中的生日日期以及确定是否成年的一个函数.可以同时确定15位和18位的身份证,经本人亲测,非常好用,分享函数代码如下: <?php //用php从身份证中提取生日,包括位和位身份证 function getIDCardInfo($IDCard){ $result['error']=;//:未知错误,:身份证格式错误,:无错误 $result['flag']='';//标示成年,标示未成年 $result['tdate']='';//生日,格式如:-- if(!eregi(&quo

MVC验证04-自定义验证规则、日期范围验证

原文:MVC验证04-自定义验证规则.日期范围验证 本文体验范围验证.与本文相关的包括: MVC验证01-基础.远程验证   MVC验证02-自定义验证规则.邮件验证   MVC验证03-自定义验证规则.禁止输入某些值     当需要对字符串长度进行验证,可以用StringLength:[StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符.", MinimumLength = 6)] 当需要对数组范围进行验证,可以用Range:[R

日期格式验证

问题描述 如何验证型如dd/mm/yyyy格式的日期,就这一种格式,不会有其他的格式. 解决方案 解决方案二:正则表达式这是YYYY-MM-DD格式的^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8

Java日期格式验证几个实例程序

需求:因为系统有很多日期格式,所以日期验证函数的输入是一个日期字符串和一个格式字符串.格式字符串用的是Java定义的格式(参考地址). 刚开始写时,觉得很简单,直接就写了下面的代码.  代码如下 复制代码 public static boolean isDate(String dttm, String format) {     boolean retValue = false;     if (dttm != null) {         SimpleDateFormat formatter

Winform之TextBox输入日期格式验证yyyy-mm-dd_C#教程

复制代码 代码如下: private void button1_Click(object sender, EventArgs e)        {            string s = textBox1.Text.ToString();            bool b = ValidateDataTime(s);            string rs = "";            if (b)            {                rs = &qu

js 日期合法性验证

<script> function   aa() {           var   sgdsj= "2004-9-29 "                               //固定时间           var   snian=sgdsj.substr(0,4)                   //取年           var   syue=sgdsj.substr(4,1)                       //月           v

ExtJs4 日期 年月选择控件(转)

原文作者:http://ext4all.com/post/ext4-monthfield-with-month-picker-for-extjs4 某论坛弄下来的,.原文如下: 我也来发一个年月选择控件,因为某些场合只需要年份和月份信息,直接使用日期控件,虽然能通过format等方式可以得到,但是还要选择日期才能完成输 入,比较麻烦,在网上找了一下,搜索到两个,都是2.x版的:于是就自己动手写一个,在4.1版中测试通过.给需要的朋友,效果如下图: 按 Ctrl+C 复制代码 MonthField

js常用的日期格式验证函数

// Function Description: 判断输入是否是有效的时间格式 - "HH:MM:SS" String.prototype.isValidTime=function() { var resule=this.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/); if (result==null) return false; if (result[1]>24 || result[3]>60 || result[4]>60) r

javascript 日期有效性验证(闰年)

闰年的条件是符合下面两个条件之一: 1.能被4整除,但不能被100整除: 2.能被4整除,又能被400整除).因为能够被400整除一定能被4整除所以 第二个条件可以简化为能够被400整除. 0==y%4   &&   (0!=y%100   ||   0==y%400)   function fn_validatedate ( nyear , nmonth , nday )  {   if ( nmonth < 1 || nmonth > 12 ) return false ;