1

我对 XForms 很陌生,所以请多多包涵。我想知道是否可以做到以下几点:

我有一个 HTML 表单

<form>
    <input type="text" name="search-string"/>
    <input type="checkbox" name="search1" checked="checked" />Search option 1
    <input type="checkbox" name="search2" checked="checked" />Search option 2
    <input type="submit" />
</form>

我想在 XForms 中表示它,并在提交时将其转换为 XML 元素,如下所示:

<data>
    <search1>my search string</search1>
    <search2>my search string</search2>
</data>

只有在设置了相应的复选框并且它们都使用输入中的字符串填充时,才应设置search1and元素。search2search-string

构建元素后,data我需要通过 POST http 请求发送它。

所有这些都可以仅使用 XForms 来完成,还是我需要使用 JS 之类的?

PS:如果有什么不同,我正在使用 XSLTForms。

4

1 回答 1

2

是的,这可以通过 XForms 完成,无需额外的 Javascript 指令。您需要两个实例:一个要提交,另一个用于填充第一个。

对于模型部分,这应该是这样的:

<xf:model>
  <xf:instance id="data">
    <data xmlns="">
      <search1/>
      <search2/>
    </data>
  </xf:instance>
  <xf:instance id="work">
    <work xmlns="">
      <b1 xsi:type="boolean"/>
      <b2 xsi:type="boolean"/>
      <search/>
    </work>
  </xf:instance>
  <xf:bind nodeset="instance('data')/search1" calculate="choose(instance('work')/b1,instance('work')/search,'')"/>
  <xf:bind nodeset="instance('data')/search2" calculate="choose(instance('work')/b2,instance('work')/search,'')"/>
  <xf:submission ref="instance('data') method="post" resource=".........."/>
</xf:model>

-阿兰

于 2012-11-25T21:37:47.253 回答