在XSLTForms向导中保留值(多步表单)

时间:2014-11-03 17:50:07

标签: xforms xsltforms

我正在构建一个使用XForms的XSLTForms实现的向导,而且我遇到了多步骤表单的问题。当我在form1中完成数据并导航到form2时,在form1中输入的所有数据都会消失。为了导航,我使用了一个触发器

<xf:trigger>
    <xf:label>Next</xf:label>
    <xf:action ev:event="DOMActivate">
        <xf:load show="replace">
            <xf:resource value="form2.xml"/>
        </xf:load>
    </xf:action>
</xf:trigger>

我想问题是我没有保存模型,所以我在模型中添加了一个提交:

<xf:submission id="saveData" resource="data.xml" ref="instance('person')" method="put" validate="false" relevant="false" replace="none" />

所以我更换了&#34; Next&#34;触发提交:

<xf:submit submission="saveData">
    <xf:label>Next</xf:label>
    <xf:action ev:event="DOMActivate">
        <xf:load show="replace">
            <xf:resource value="form2.xml"/>
        </xf:load>
    </xf:action>
</xf:submit>

但仍然有问题:导航器要求用户写入文件的权限,我真的希望最后这样做,而不是每种形式。

有替代方案吗?非常感谢!

这是一个更好理解的例子:

<xf:instance xmlns="">
    <person>
        <name/>                     <!--Form 01-->
        <surname/>                  <!--Form 01-->
        <height/>                   <!--Form 01-->
        <weight/>                   <!--Form 01-->
        <children>
            <age/>                  <!--Form 02-->
            <school-name/>          <!--Form 02-->
        </children>
        <has-car/>                  <!--Form 03-->
        <wanna-share-car/>          <!--Form 03-->
    </person>
</xf:instance>

1 个答案:

答案 0 :(得分:1)

XForms可用于设计单页应用程序。

使用XForms 1.1,所有应用程序都写入一个表单。案例可用于逐步显示控件。相关的MIP也可用于此。

诸如betterForm和XSLTForms之类的XForms实现添加了一个子表单机制,允许加载/卸载表单的各个部分。不幸的是,这并未包含在XForms 2.0提议的建议中,因此这是一种非标准机制。

XSLTForms中的子表单非常通用:它们可以共享相同的模型和实例,它们也可以拥有自己的。 XSLTForms不需要特定的操作或功能。

- 阿兰