1
Это extjs mixin для проверки даты от даты или начала даты окончания в форме. вот Mixin .. (основной код был взят из сенча форума :)) использованияФильтрация полей даты с даты начала или окончания даты
Ext.define("AMShiva.mixin.DateRangeValidator", {
timerange: function (val, field) {
/// <summary>
/// This will validate two datefields
/// </summary>
var me = this; //will be the form, containing datefields
var time = field.parseDate(val);
if (!time) {
return;
}
if (field.startTimeField && (!this.timeRangeMax || (time.getTime() != this.timeRangeMax.getTime()))) {
var start = me.down('datefield[name=' + field.startTimeField + ']');
start.maxValue = time;
start.validate();
this.timeRangeMax = time;
}
else if (field.endTimeField && (!this.timeRangeMin || (time.getTime() != this.timeRangeMin.getTime()))) {
var end = me.down('datefield[name=' + field.endTimeField + ']');
end.minValue = time;
end.validate();
this.timeRangeMin = time;
}
return true;
}
});
образца выше Mixin
Это частичный разрез из формы.
{
xtype: 'datefield',
fieldLabel: 'From',
name: 'from_date',
format: 'Y-m-d',
editable: false,
endTimePeriod:'to_date', //below component
validationEvent: 'change',
validator: function (value) {
return me.timerange(value, this);
}
},
{
xtype: 'datefield',
fieldLabel: 'To',
format: 'Y-m-d',
name: 'to_date',
editable: false,
startTimeField:'from_date', //above component
validationEvent: 'change',
validator: function (value) {
return me.timerange(value, this);
}
}
Хорошей работы, добавив все примеры кода, но я отсутствую ясный вопрос, обозначается вопросительным знаком. – Alexander
Для более общего и расширяемого решения вы можете проверить этот вопрос - http://stackoverflow.com/a/34159877/2667065 –