define("dijit/form/_FormValueWidget", [ "dojo/_base/declare", // declare "dojo/_base/sniff", // has("ie") "./_FormWidget", "./_FormValueMixin" ], function(declare, has, _FormWidget, _FormValueMixin){ /*===== var _FormWidget = dijit.form._FormWidget; var _FormValueMixin = dijit.form._FormValueMixin; =====*/ // module: // dijit/form/_FormValueWidget // summary: // FormValueWidget return declare("dijit.form._FormValueWidget", [_FormWidget, _FormValueMixin], { // summary: // Base class for widgets corresponding to native HTML elements such as or element, // to which it serializes it's input value, so that form submission (either normal submission or via FormBind?) // works as expected. // Don't attempt to mixin the 'type', 'name' attributes here programatically -- they must be declared // directly in the template as read by the parser in order to function. IE is known to specifically // require the 'name' attribute at element creation time. See #8484, #8660. _layoutHackIE7: function(){ // summary: // Work around table sizing bugs on IE7 by forcing redraw if(has("ie") == 7){ // fix IE7 layout bug when the widget is scrolled out of sight var domNode = this.domNode; var parent = domNode.parentNode; var pingNode = domNode.firstChild || domNode; // target node most unlikely to have a custom filter var origFilter = pingNode.style.filter; // save custom filter, most likely nothing var _this = this; while(parent && parent.clientHeight == 0){ // search for parents that haven't rendered yet (function ping(){ var disconnectHandle = _this.connect(parent, "onscroll", function(){ _this.disconnect(disconnectHandle); // only call once pingNode.style.filter = (new Date()).getMilliseconds(); // set to anything that's unique setTimeout(function(){ pingNode.style.filter = origFilter }, 0); // restore custom filter, if any } ); })(); parent = parent.parentNode; } } } }); });