我正在使用ExtJs 3.4并使用以下代码创建隐藏字段:
box.hidden = this.el.insertSibling({
tag: 'input',
type: 'hidden',
value: itemVal,
name: (this.hiddenName || this.name)
}, 'before');
但是,当itemVal
是json-string(或带引号字符的字符串)时,它会创建一个如下所示的元素:
<input type="hidden" value="[" 635f7ede-7add-415f-8461-548d17027cac.group","bbe2x:101"]"="" name="selector_account_ef8e33ca71e749dca21997f51b404e23" id="ext-gen1766">
问题在于它为了性能而共存html。所以我想在这种情况下通过将Ext.DomHelper.useDom
设置为true来创建元素。应该是一个简单的修复,对吗?但是检查useDom变量的内部代码会检查传递给Ext.apply
函数而不是使用Ext.DomHelper.useDom
的私有对象。因此,如果我在检查它的函数内将Ext.DomHelper.useDom设置为true并不重要,它永远不会成立。在这里查看ExtJs代码:
http://docs.sencha.com/ext-js/3-4/source/DomHelper-more.html
// private
function doInsert(el, o, returnElement, pos, sibling, append){
el = Ext.getDom(el);
var newNode;
if (pub.useDom) {
...
} else {
...
}
return returnElement ? Ext.get(newNode, true) : newNode;
}
我发现了一个关闭的旧错误报告(http://www.sencha.com/forum/showthread.php?76966-CLOSED-3.0.0-DomHelper-s-useDom-bug),但我不明白为什么以及如何将useDom设置为true。
当然,通过将"
替换为"
来修复它很简单,但我想了解它。