我试图通过javascript控制一些输入值。我需要根据其他变量自动完成一些“未启用的输入”。
第一个尝试是通过获取对控件的引用来操作DOM,但是自动生成的html代码格式不太好,我不能使用regex、查询选择器或简单的getElementById()吗?参见本例> http://jsfiddle.net/wmzyqqja/7/
第二次尝试是修改数据模型,但我未能尝试指定路径(我认为是这样)。拥有这种模式:
<xf:model id="mod">
<xf:instance id="people">
<person name=""/>
</xf:instance>
<xf:instance id="tmpPerson">
<person name=""/>
</xf:instance>
<xf:bind nodeset="instance('tmpPerson')/@name" readonly="true()" />
</xf:model>我使用这个函数并没有成功:
function changeValue(){
var ctx = xf_getInstance('mod', 'tmpPerson');
console.log('ctx: ' + ctx);
var reg = 'person';
// /tmpPerson/person --> null
// /model/instance/person --> null
// //model/instance/person
// /mod/tmpPerson/person --> null
// //mod/tmpPerson/person --> null
// /person
var node = xf_getNode(ctx, reg);
console.log('node: ' + node); //NODE IS ALWAYS NULL
xf_changeNode(
node,
'New value'
);
tri
function xf_getNode(context, path)
{
return XsltForms_browser.selectSingleNode(path, context);
}
function xf_changeNode(node, value)
{
XsltForms_globals.openAction("XsltForms_change");
XsltForms_browser.setValue(node, value || "");
document.getElementById(XsltForms_browser.getMeta(node.ownerDocument.documentElement, "model")).xfElement.addChange(node);
XsltForms_browser.debugConsole.write("Setvalue " + node.nodeName + " = " + value);
XsltForms_globals.closeAction("XsltForms_change");
}这是现场演示> http://www.devel-open.org/XSLTForms/demo/changing-values-dynamically.xml
我怎么能做到这点?我真的需要修改这些值。提前感谢!
发布于 2014-12-16 16:07:56
实例有一个名称空间问题:默认名称空间是HTML。请再次尝试在它们中添加xmlns=""。
https://stackoverflow.com/questions/27505162
复制相似问题