如何获得XForm中显示一个复选框?(How to get an XForm to display

2019-09-26 13:34发布

我似乎有得到一个问题xform显示复选框-相反它会显示一个文本区域。 我的所有其他项目都正常工作,我似乎无法得到这个工作。

这是我的模型里面的代码:

<takeMoneyOff type="xs:boolean"/>

// close the my structure
// close the instance

<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"/>

// close the model

这就是全部是指用于显示的产品:

<xf:input ref="takeMoneyOff" class="takeMoneyOffClass">
    <xf:label>Take Money Off? </xf:label>
</xf:input>

Answer 1:

你不提这XForms实现()你的目标,但假设它是/他们是完全符合,你有两个选择。

  1. 如果你想指定实例数据的类型,如您的示例代码表明,你需要的类型属性是在XML架构实例命名空间。 所以,如果你声明的命名空间前缀xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ,您的实例数据将需要看起来像这样:

     <takeMoneyOff xsi:type="xs:boolean" /> 
  2. 或者,如果实例数据从外部源和你控制它不是,那么你可以把一个类型属性的绑定元素本身,而不是对(它不应该在这种情况下,XSI命名空间):

     <xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff" type="xs:boolean" /> 


Answer 2:

您还可以使用<xforms:select> ,将存储的值或空白:

<xf:select ref="takeMoneyOff" class="takeMoneyOffClass">
    <xf:label>Take Money Off? </xf:label>
    <xf:item>
        <xf:label>Yes</xf:label>
        <xf:value>true</xf:value>
    </xf:item>
</xf:select1>

有了适当的约束,你甚至可以存储“假”空出现时:

<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"
         calculate="choose(. = 'true', ., 'false')"
         readonly="false()"/>


文章来源: How to get an XForm to display a checkbox?
标签: xforms