Combo Fecha, validando los días del mes

http://codigo.extjs.mx/extjs4/form/fechanacimiento/fechanacimiento.rar

En el siguiente formulario, se aprecia el campo Fecha de Nacimiento, el cual esta constituida por día, mes y año, pero resulta que ciertos meses varian de cantidad de dias, el ejemplo mas claro que es el mes de febreroque solo tienen 28 días a diferencia del resto de los meses, es por ello que este ejemplo, se enfoca en validar los dias que corresponden a cada mes, en caso de teclear 29 en el mes de febrero, se marcara como un dato invalidado.

Vemos el ejemplo:
<pre name="code" class="javascript">
Ext.onReady(function() {
Ext.tip.QuickTipManager.init();
var storeFecha= new Ext.data.ArrayStore({
fields: ['id', 'name'],
data : [
[0,  'Enero'],
[1,  'Febrero'],
[2,  'Marzo'],
[3,  'Abril'],
[4,  'Mayo'],
[5,  'Junio'],
[6,  'Julio'],
[7,  'Agosto'],
[8,  'Septiembre'],
[9,  'Octubre'],
[10, 'Noviembre'],
[11, 'Diciembre']]
});

Ext.create("Ext.FormPanel",{
renderTo:'simpleCombo',
heigth: 200,
title:'Formularios con Combo',
width:410,
frame: true,
fieldDefaults:{
labelWidth: 120,
msgTarget: 'side'
},

defaultType:'textfield',

defaults:{
width:400
},
items:[{
fieldLabel:'* Nombre ',
name:'nombre',
allowBlank: false
}, {
fieldLabel:'* Apellidos',
name:'apellidos',
allowBlank: false
},{
fieldLabel:'Email',
name:'email',
vtype:'email'
},{
xtype:'container',
layout:'column',
items: [{
labelWidth: 120,
columnWidth:.50,
xtype:'numberfield',
fieldLabel:'Fecha de Nacimiento',
maxValue:31,
id: "dia"+this.id,
minValue :1,
allowNegative:true,
emptyText: 'D&iacute;a'
},{
columnWidth: .30,
xtype:'combobox',
valueField:'id',
queryMode: 'local',
displayField:'name',
emptyText: 'Mes',
store:storeFecha,
listeners:{
scope:this,
select:function(cb,record){
cambiardia(record[0].get("id"));
}
}
},{
columnWidth: .20,
xtype:'numberfield',
minValue:1940,
maxValue:2006,
id:"anio"+this.id,
allowNegative:true,
emptyText: 'a&ntilde;o',
hideTrigger: true
}]
}]
});

var cambiardia= function(mes){
switch(mes){
case 0:
case 2:
case 4:
case 7:
case 9:
case 11:
Ext.getCmp("dia"+this.id).setMaxValue(31)
break;

case 1:
Ext.getCmp("dia"+this.id).setMaxValue(28)
break;
case 3:
case 5:
case 6:
case 8:
case 10:
Ext.getCmp("dia"+this.id).setMaxValue(30)
break;
}
}
});
</pre>


Porqué es importante aprender a programar? ...
El éxito de las estimaciones de recursos en el Software ...
La programación dirigida por eventos también es un paradigma de programación
Consideraciones a tomar para llamarlo el mejor

Danos tus comentarios

Escribe un comentario en el campo de abajo...