| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | /** * @example Form Validation * */Ext.require('Ext.form.Panel');Ext.require('Ext.form.field.Date');Ext.onReady(function() {    var timeTest = /^([1-9]|1[0-9]):([0-5][0-9])(\s[a|p]m)$/i;    Ext.apply(Ext.form.field.VTypes, {        //  vtype validation function        time: function(val, field) {            return timeTest.test(val);        },        // vtype Text property: The error text to display when the validation function returns false        timeText: 'Not a valid time.  Must be in the format "12:34 PM".',        // vtype Mask property: The keystroke filter mask        timeMask: /[\d\s:amp]/i    });    Ext.create('Ext.form.Panel', {        renderTo: Ext.getBody(),        title: 'User Form',        height: 200,        width: 280,        bodyPadding: 10,        defaultType: 'textfield',        items: [            {                fieldLabel: 'First Name',                name: 'firstName'            },            {                fieldLabel: 'Last Name',                name: 'lastName'            },            {                fieldLabel: 'Email Address',                name: 'email',                vtype: 'email'            },            {                xtype: 'datefield',                fieldLabel: 'Date of Birth',                name: 'birthDate',                msgTarget: 'under', // location of the error message                invalidText: '"{0}" bad. "{1}" good.' // custom error message            },            {                fieldLabel: 'Last Login Time',                name: 'loginTime',                vtype: 'time' //  using a custom validation type            }        ]    });});
 |