0

我正在使用 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" />

所以我用提交替换了“下一个”触发器:

<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>
4

1 回答 1

1

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

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

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

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

——阿兰

于 2014-11-03T20:25:41.043 回答