dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
49 lines (42 loc) • 1.73 kB
JavaScript
define([
"dojo/_base/declare",
"dojo/dom-construct",
"dijit/_WidgetBase",
"dijit/form/_FormValueMixin",
"dijit/form/_TextBoxMixin",
"dojo/has",
"dojo/has!dojo-bidi?dojox/mobile/bidi/TextBox"
], function(declare, domConstruct, WidgetBase, FormValueMixin, TextBoxMixin, has, BidiTextBox){
var TextBox = declare(has("dojo-bidi") ? "dojox.mobile.NonBidiTextBox" : "dojox.mobile.TextBox", [WidgetBase, FormValueMixin, TextBoxMixin],{
// summary:
// A non-templated base class for textbox form inputs
baseClass: "mblTextBox",
// Override automatic assigning type --> node, it causes exception on IE8.
// Instead, type must be specified as this.type when the node is created, as part of the original DOM
_setTypeAttr: null,
// Map widget attributes to DOMNode attributes.
_setPlaceHolderAttr: function(/*String*/value){
value = this._cv ? this._cv(value) : value;
this._set("placeHolder", value);
this.textbox.setAttribute("placeholder", value);
},
buildRendering: function(){
if(!this.srcNodeRef){
this.srcNodeRef = domConstruct.create("input", {"type":this.type});
}
this.inherited(arguments);
this.textbox = this.focusNode = this.domNode;
},
postCreate: function(){
this.inherited(arguments);
this.connect(this.textbox, "onmouseup", function(){ this._mouseIsDown = false; });
this.connect(this.textbox, "onmousedown", function(){ this._mouseIsDown = true; });
this.connect(this.textbox, "onfocus", function(e){
this._onFocus(this._mouseIsDown ? "mouse" : e);
this._mouseIsDown = false;
});
this.connect(this.textbox, "onblur", "_onBlur");
}
});
return has("dojo-bidi") ? declare("dojox.mobile.TextBox", [TextBox, BidiTextBox]) : TextBox;
});