在 XsltForms 控件中动态更改值

Posted

技术标签:

【中文标题】在 XsltForms 控件中动态更改值【英文标题】:Changing values dynamically in XsltForms controls 【发布时间】:2015-02-14 19:05:34 【问题描述】:

我正在尝试通过 javascript 控制一些输入值。我需要根据其他一些变量自动完成一些“未启用的输入”。

第一次尝试是通过获取控件的引用来操作 DOM,但是自动生成的 html 代码格式不正确,我不能使用正则表达式,或者查询选择器或简单的 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

知道我该如何管理吗?我真的需要修改这些值。 提前致谢!

【问题讨论】:

【参考方案1】:

您的实例存在命名空间问题:默认命名空间是 HTML。请再次尝试在其中添加xmlns=""

【讨论】:

感谢您的支持,阿兰!

以上是关于在 XsltForms 控件中动态更改值的主要内容,如果未能解决你的问题,请参考以下文章

WPF编程,通过Double Animation动态更改控件属性的一种方法。

如何在循环中动态更改用户控件的属性

XsltForms 中的只读控件

如何动态更改列表中控件的属性(C# Winform)?

用Jquery的append事件动态添加控件,点击添加时会清空原来动态控件中的值。是啥原因?

Visual Studio MFC 在键入/动态时更改编辑控件中的文本