80 lines
2 KiB
JavaScript
80 lines
2 KiB
JavaScript
|
if(!dojo._hasResource["dijit.form.NumberTextBox"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
|
||
|
dojo._hasResource["dijit.form.NumberTextBox"] = true;
|
||
|
dojo.provide("dijit.form.NumberTextBox");
|
||
|
|
||
|
dojo.require("dijit.form.ValidationTextBox");
|
||
|
dojo.require("dojo.number");
|
||
|
|
||
|
/*=====
|
||
|
dojo.declare(
|
||
|
"dijit.form.NumberTextBox.__Constraints",
|
||
|
[dijit.form.RangeBoundTextBox.__Constraints, dojo.number.__FormatOptions, dojo.number.__ParseOptions]
|
||
|
);
|
||
|
=====*/
|
||
|
|
||
|
dojo.declare(
|
||
|
"dijit.form.NumberTextBoxMixin",
|
||
|
null,
|
||
|
{
|
||
|
// summary:
|
||
|
// A mixin for all number textboxes
|
||
|
|
||
|
regExpGen: dojo.number.regexp,
|
||
|
|
||
|
/*=====
|
||
|
// constraints: dijit.form.NumberTextBox.__Constraints
|
||
|
constraints: {},
|
||
|
======*/
|
||
|
|
||
|
// editOptions: Object
|
||
|
// properties to mix into constraints when the value is being edited
|
||
|
editOptions: { pattern: '#.######' },
|
||
|
|
||
|
_onFocus: function(){
|
||
|
this.setValue(this.getValue(), false);
|
||
|
this.inherited(arguments);
|
||
|
},
|
||
|
|
||
|
_formatter: dojo.number.format,
|
||
|
|
||
|
format: function(/*Number*/ value, /*dojo.number.__FormatOptions*/ constraints){
|
||
|
// summary: formats the value as a Number, according to constraints
|
||
|
|
||
|
if(typeof value == "string") { return value; }
|
||
|
if(isNaN(value)){ return ""; }
|
||
|
if(this.editOptions && this._focused){
|
||
|
constraints = dojo.mixin(dojo.mixin({}, this.editOptions), this.constraints);
|
||
|
}
|
||
|
return this._formatter(value, constraints);
|
||
|
},
|
||
|
|
||
|
parse: dojo.number.parse,
|
||
|
/*=====
|
||
|
parse: function(value, constraints){
|
||
|
// summary: parses the value as a Number, according to constraints
|
||
|
// value: String
|
||
|
//
|
||
|
// constraints: dojo.number.__ParseOptions
|
||
|
},
|
||
|
=====*/
|
||
|
|
||
|
filter: function(/*Number*/ value){
|
||
|
if(typeof value == "string"){ return this.inherited('filter', arguments); }
|
||
|
return isNaN(value) ? '' : value;
|
||
|
},
|
||
|
|
||
|
value: NaN
|
||
|
}
|
||
|
);
|
||
|
|
||
|
dojo.declare(
|
||
|
"dijit.form.NumberTextBox",
|
||
|
[dijit.form.RangeBoundTextBox,dijit.form.NumberTextBoxMixin],
|
||
|
{
|
||
|
// summary:
|
||
|
// A validating, serializable, range-bound text box.
|
||
|
}
|
||
|
);
|
||
|
|
||
|
}
|