111 lines
3.4 KiB
JavaScript
111 lines
3.4 KiB
JavaScript
|
dojo.provide("dojox.form.DateTextBox");
|
||
|
|
||
|
dojo.require("dojox.widget.Calendar");
|
||
|
dojo.require("dojox.widget.CalendarViews");
|
||
|
dojo.require("dijit.form._DateTimeTextBox");
|
||
|
|
||
|
dojo.declare(
|
||
|
"dojox.form.DateTextBox",
|
||
|
dijit.form._DateTimeTextBox,
|
||
|
{
|
||
|
// summary:
|
||
|
// A validating, serializable, range-bound date text box with a popup calendar
|
||
|
|
||
|
// popupClass: String
|
||
|
// The popup widget to use. In this case, a calendar with Day, Month and Year views.
|
||
|
popupClass: "dojox.widget.Calendar",
|
||
|
_selector: "date",
|
||
|
|
||
|
_open: function(){
|
||
|
this.inherited(arguments);
|
||
|
dojo.style(this._picker.domNode.parentNode, "position", "absolute");
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
dojo.declare(
|
||
|
"dojox.form.DayTextBox",
|
||
|
dojox.form.DateTextBox,
|
||
|
{
|
||
|
// summary:
|
||
|
// A validating, serializable, range-bound date text box with a popup calendar that contains just months.
|
||
|
|
||
|
// popupClass: String
|
||
|
// The popup widget to use. In this case, a calendar with just a Month view.
|
||
|
popupClass: "dojox.widget.DailyCalendar",
|
||
|
|
||
|
format: function(value){return value.getDate();},
|
||
|
validator: function(value) {
|
||
|
var num = Number(value);
|
||
|
var isInt = /(^-?\d\d*$)/.test(String(value));
|
||
|
return value == "" || value == null || (isInt && num >= 1 && num <= 31);
|
||
|
},
|
||
|
_open: function(){
|
||
|
this.inherited(arguments);
|
||
|
|
||
|
this._picker.onValueSelected = dojo.hitch(this, function(value){
|
||
|
this.focus(); // focus the textbox before the popup closes to avoid reopening the popup
|
||
|
setTimeout(dojo.hitch(this, "_close"), 1); // allow focus time to take
|
||
|
dijit.form.TextBox.prototype._setValueAttr.call(this, value, true, String(value.getDate()));
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
dojo.declare(
|
||
|
"dojox.form.MonthTextBox",
|
||
|
dojox.form.DateTextBox,
|
||
|
{
|
||
|
// summary:
|
||
|
// A validating, serializable, range-bound date text box with a popup calendar that contains just months.
|
||
|
|
||
|
// popupClass: String
|
||
|
// The popup widget to use. In this case, a calendar with just a Month view.
|
||
|
popupClass: "dojox.widget.MonthlyCalendar",
|
||
|
|
||
|
format: function(value){return value + 1},
|
||
|
|
||
|
validator: function(value) {
|
||
|
var num = Number(value);
|
||
|
var isInt = /(^-?\d\d*$)/.test(String(value));
|
||
|
return value == "" || value == null || (isInt && num >= 1 && num <= 12);
|
||
|
},
|
||
|
_open: function(){
|
||
|
this.inherited(arguments);
|
||
|
|
||
|
this._picker.onValueSelected = dojo.hitch(this, function(value){
|
||
|
this.focus(); // focus the textbox before the popup closes to avoid reopening the popup
|
||
|
setTimeout(dojo.hitch(this, "_close"), 1); // allow focus time to take
|
||
|
dijit.form.TextBox.prototype._setValueAttr.call(this,value + 1, true, value + 1);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
dojo.declare(
|
||
|
"dojox.form.YearTextBox",
|
||
|
dojox.form.DateTextBox,
|
||
|
{
|
||
|
// summary:
|
||
|
// A validating, serializable, range-bound date text box with a popup calendar that contains only years
|
||
|
|
||
|
// popupClass: String
|
||
|
// The popup widget to use. In this case, a calendar with just a Year view.
|
||
|
popupClass: "dojox.widget.YearlyCalendar",
|
||
|
format: function(value){return value;},
|
||
|
validator: function(value) {
|
||
|
return value == "" || value == null || /(^-?\d\d*$)/.test(String(value));
|
||
|
},
|
||
|
|
||
|
_open: function(){
|
||
|
this.inherited(arguments);
|
||
|
|
||
|
this._picker.onValueSelected = dojo.hitch(this, function(value){
|
||
|
this.focus(); // focus the textbox before the popup closes to avoid reopening the popup
|
||
|
setTimeout(dojo.hitch(this, "_close"), 1); // allow focus time to take
|
||
|
dijit.form.TextBox.prototype._setValueAttr.call(this,value, true, value);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
);
|