`
TRAMP_ZZY
  • 浏览: 138930 次
社区版块
存档分类
最新评论

ExtJS 开始时间 结束时间校验扩展

 
阅读更多

Ext.apply(Ext.form.field.VTypes,   
{  
      
  //首先定义一个vtype名称,和他的验证函数,val参数是文本框的值,field是文本框。一般我就使用val和正则表达式比较就OK了。  
  //然后定义一个vtype的报错信息,与vtype名称加Text后缀。OK了。  
  passwd: function(val, field)   
  {  
        if (field.initialPassField)   
        {  
            var pwd = Ext.getCmp(field.initialPassField);  
            return (val == pwd.getValue());   
        }  
        return true;  
  },  
  passwdText: '两次输入的密码不一致!',  
    
  chinese:function(val,field)  
  {  
        var reg = /^[\u4e00-\u9fa5]+$/i;  
        if(!reg.test(val))  
        {  
            return false;  
        }  
        return true;  
  },  
  chineseText:'请输入中文',  
    
  age:function(val,field)  
  {  
        try  
        {  
            if(parseInt(val) >= 18 && parseInt(val) <= 100)  
                return true;  
            return false;  
        }  
        catch(err)   
        {  
            return false;  
        }  
  },  
  ageText:'年龄输入有误',  
    
  alphanum:function(val,field)  
  {  
        try  
        {  
            if(!/\W/.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  alphanumText:'请输入英文字母或是数字,其它字符是不允许的.',  
    
  url:function(val,field)  
  {  
        try  
        {  
            if(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  urlText:'请输入有效的URL地址.',  
    
  max:function(val,field)  
  {  
        try  
        {  
            if(parseFloat(val) <= parseFloat(field.max))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  maxText:'超过最大值',  
    
  min:function(val,field)  
  {  
        try  
        {  
            if(parseFloat(val) >= parseFloat(field.min))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  minText:'小于最小值',  
        
  datecn:function(val,field)  
  {  
        try  
        {  
            var regex = /^(\d{4})-(\d{2})-(\d{2})$/;  
            if(!regex.test(val)) return false;  
            var d = new Date(val.replace(regex, '$1/$2/$3'));  
            return (parseInt(RegExp.$2, 10) == (1+d.getMonth())) && (parseInt(RegExp.$3, 10) == d.getDate())&&(parseInt(RegExp.$1, 10) == d.getFullYear());  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  datecnText:'请使用这样的日期格式: yyyy-mm-dd. 例如:2008-06-20.',  
    
  integer:function(val,field)  
  {  
        try  
        {  
            if(/^[-+]?[\d]+$/.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  integerText:'请输入正确的整数',  
    
  minlength:function(val,field)  
  {  
        try  
        {  
            if(val.length >= parseInt(field.minlen))  
                return true;  
            return false  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  minlengthText:'长度过小',  
    
  maxlength:function(val,field)  
  {  
     try  
     {  
        if(val.length <= parseInt(field.maxlen))  
            return true;  
        return false;  
     }  
     catch(e)  
     {  
        return false;  
     }  
  },  
  maxlengthText:'长度过大',  
    
  ip:function(val,field)  
  {  
        try  
        {  
            if((/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(val)))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  ipText:'请输入正确的IP地址',  
    
  phone:function(val,field)  
  {  
        try  
        {  
            if(/^((0[1-9]{3})?(0[12][0-9])?[-])?\d{6,8}$/.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  phoneText:'请输入正确的电话号码,如:0920-29392929',  
    
  mobilephone:function(val,field)  
  {  
        try  
        {  
            if(/(^0?[1][35][0-9]{9}$)/.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  mobilephoneText:'请输入正确的手机号码',  
    
  alpha:function(val,field)  
  {  
        try  
        {  
            if( /^[a-zA-Z]+$/.test(val))  
                return true;  
            return false;  
        }  
        catch(e)  
        {  
            return false;  
        }  
  },  
  alphaText:'请输入英文字母',  
    
  money:function(val,field)  
  {  
        try  
        {  
            if(/^\d+\.\d{2}$/.test(val))          
                return true;  
        return false;     
        }  
        catch(e)  
        {  
            return false;     
        }  
 
  },  
  moneyText:'请输入正确的金额',
  
  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;  
                }  
                /* 
                 * 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 : '开始时间必须小于结束时间'
});

{
    	    	xtype : 'datefield',
				fieldLabel : '开始时间',
				altFormats: 'Y-m-d',
				format : 'Y-m-d',
				id : 'createStartTime',
				name : 'createStartTime',
				maxValue : new Date(),
				editable : false,
				vtype : 'daterange',
				endDateField :"createEndTime"
    	    },{
    	    	xtype : 'datefield',
				fieldLabel : '结束时间',
				altFormats: 'Y-m-d',
				format : 'Y-m-d',
				id : 'createEndTime',
				name : 'createEndTime',
				maxValue : new Date(),
				vtype : 'daterange',
				editable : false,
				startDateField : "createStartTime"
    	    }



  • 大小: 132.3 KB
分享到:
评论

相关推荐

    EXTJS扩展例子集

    这个"EXTJS扩展例子集"显然是一个包含EXTJS3.0相关扩展组件的资源包,旨在帮助开发者理解和学习如何使用这些扩展。 在EXTJS中,扩展(Extensions)通常是指对框架原有功能的增强或定制,它们可以是新的组件、小部件...

    extjs时间控件精确秒

    在EXTJS这个强大的JavaScript框架中,时间控件是开发者经常使用的组件之一,尤其在构建复杂的Web应用程序时。EXTJS的时间控件允许用户选择或输入时间,通常以小时、分钟和秒为单位,提供了用户友好的界面和丰富的...

    extjs vtype 扩展正则

    Extjs表单VTYPE扩展,方便验证!

    Extjs扩展DateTimeField时间初始化及点击日期显示Bug

    本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发中遇到的难题。 DateTimeField是EXTJS中用于处理日期和时间选择的组件,它允许用户同时选择日期和时间,...

    使用extjs写的时间轴

    9. **扩展性**:为了增加时间轴的功能,可以编写插件或扩展。例如,添加搜索功能查找特定事件,或者添加过滤器只显示特定时间段的事件。 10. **3DTimeline组件**:虽然标题中没有明确提及,但“3DTimeline”可能是...

    extjs日期+时间控件

    ExtJS是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序...通过理解以上知识点,你可以更好地理解和解决关于ExtJS 4.1版本日期时间控件的问题,无论是显示异常还是功能扩展,都可以游刃有余地进行处理。

    EXTJS时间控件年月日时分秒

    总之,EXTJS时间控件是其组件库中的一个重要部分,它通过灵活的配置和扩展机制,能够满足各种复杂的时间选择需求。通过深入理解和实践,开发者可以创建出符合项目需求的自定义时间控件,提升用户体验并增强应用程序...

    Extjs树分页组件扩展

    "Extjs树分页组件扩展"就是为了解决这一问题而设计的,它通过扩展TreeLoader和PagingToolbar,实现了在树形组件中进行分页加载的效果。 **TreeLoader的扩展** TreeLoader是ExtJS中负责异步加载树节点的类。在原生...

    Extjs 5 日期时间控件

    总之,ExtJS 5 的日期时间控件提供了一种方便、直观的方式来处理日期和时间输入,具有高度可配置性和可扩展性。它通过结合日期和时间选择器,满足了开发者对日期时间组件的需求,并且通过丰富的配置选项和事件处理...

    ExtJs DWR扩展 DWRProxy、DWRTreeLoader、DWRGridProxy

    在标题和描述中提到的“ExtJs DWR扩展”是指将这两者结合使用,以增强数据交换和UI更新的能力。 1. **DWRProxy**: DWRProxy是ExtJs中的一个类,它作为DWR和ExtJs之间的桥梁,使得ExtJs可以利用DWR的远程调用功能。...

    extjs6 datetimefield 扩展时间控件 分时秒控件

    在给定的场景下,"extjs6 datetimefield 扩展时间控件 分时秒控件"描述了一个针对EXTJS6的`datetimefield`组件的增强,目的是增加对小时、分钟和秒钟的单独选择功能。 EXTJS6是Sencha公司推出的一个强大的...

    ExtJs:收集基于ExtJs扩展的一些控件

    通过学习和使用这些扩展控件,开发者可以提高代码的复用性,减少开发时间,并提升应用程序的灵活性。 接着是“ExtJs:收集基于ExtJs扩展的一些控件2”。这可能是对另一批ExtJs扩展控件的介绍,可能包含了一些新的或...

    extjs扩展年度控件,EXTJS里的时间控件的年度重写

    然而,有时开发人员可能需要对这些控件进行自定义,以满足特定业务需求,比如在本例中,我们需要扩展EXTJS的时间控件以实现“年度”选择的功能。 EXTJS的Date Picker默认提供了日、月、年的选择,但可能并不完全...

    extjs3.2、3.3 时间控件 日期控件扩展

    总之,“extjs3.2、3.3 时间控件 日期控件扩展”是关于如何在ExtJS 3.x版本中使用和自定义日期及时间选择器的知识点,涵盖了基本使用、扩展开发、实际应用等多个方面。通过深入理解这些概念,开发者可以创建出更加...

    extjs 日期时间

    标题中提到的"extjs 日期时间",指的是ExtJS框架内用于处理日期和时间输入的组件。这个控件通常会包含两个部分:日期选择器和时间选择器,允许用户精确地指定一个日期和时间。在ExtJS 2.0中,这个控件可能还不是非常...

    extjs3.0 日期时间控件

    标题中的"extjs3.0 日期时间控件"指的是ExtJS 3.0框架中的DateTimeField组件,这是一个组合了日期选择器和时间选择器的控件,允许用户以交互的方式选择精确的日期和时间。这个控件通常用于表单中,提供了一种直观且...

    真正的Extjs 4.2 支持时间选择的日历扩展

    在标题提到的"真正的Extjs 4.2 支持时间选择的日历扩展"中,我们关注的是一个特定的日历组件,它增强了ExtJS 4.2的基本功能,添加了对时间选择的支持。这意味着用户不仅可以选择日期,还可以选择具体的时间,这在...

    extjs扩展教程 网页版

    extjs扩展教程 extjs扩展教程extjs扩展教程

    extjs时间日期选择组件

    EXTJS中的DateTimeField不仅包含了基本的文本输入功能,还扩展了选择日期和时间的能力。用户可以点击输入框旁边的图标来弹出日期和时间选择器,然后选择合适的日期和时间。DateTimeField也支持验证和格式化输入值,...

    ExtJs日期时间选择控件

    总结,ExtJs的日期时间选择控件是一个功能强大且灵活的组件,不仅提供了丰富的配置选项和事件机制,还能通过自定义和扩展满足各种复杂需求。优化后的时间选择控件精确到秒,使得在需要精确时间信息的场景下表现得尤...

Global site tag (gtag.js) - Google Analytics