You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.1 KiB
31 lines
1.1 KiB
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; } |
|
}); |
|
});
|
|
|