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.
32 lines (27 loc) • 1.13 kB
JavaScript
define([
"dojo/_base/declare",
"dijit/_WidgetBase"
], function(declare, _WidgetBase){
return declare("dojox.mvc.Element", _WidgetBase, {
// summary:
// A widget implicitly created by dojox/mvc/parserExtension.
// Maps "value" attribute to form element value, innerText/innerHTML to element's innerText/innerHTML, and other attributes to DOM attributes.
// Also, for form element, updates value (or checked for check box) as user edits.
_setInnerTextAttr: {node: "domNode", type: "innerText"},
_setInnerHTMLAttr: {node: "domNode", type: "innerHTML"},
buildRendering: function(){
// summary:
// Set onchange event handler for form elements.
this.inherited(arguments);
if(/select|input|textarea/i.test(this.domNode.tagName)){
var _self = this, node = this.focusNode = this.domNode;
this.on("change", function(e){
var attr = /^checkbox$/i.test(node.getAttribute("type")) ? "checked" : "value";
_self._set(attr, _self.get(attr));
});
}
},
_getCheckedAttr: function(){ return this.domNode.checked; },
_getValueAttr: function(){ return this.domNode.value; }
});
});