Orbeon表单,显示下拉菜单的第一个元素

时间:2018-10-05 10:43:59

标签: forms xpath orbeon

如何显示下拉菜单的第一个元素而不是“请选择”? 我正在2个这样的下拉菜单中加载元素:

  <xf:instance id="makes">
        <root>
            <item name="Tesla" value="Tesla"/>
            <item name="Toyota" value="Toyota"/>
            <item name="Suzuki" value="Suzuki"/>
            <item name="Jeep" value="Jeep"/>
            <item name="Alfa" value="Alfa"/>
        </root>
        </xf:instance>

        <xf:instance id="models">
            <root>
                <item makeValue="Tesla" modelValue="Tesla S" modelName="Tesla S"/>
                <item makeValue="Tesla" modelValue="Tesla X" modelName="Tesla X"/>
                <item makeValue="Tesla" modelValue="Tesla Roadster" modelName="Tesla Roadster"/>
                <item makeValue="Alfa" modelValue="Brera" modelName="Brera" />
                <item makeValue="Alfa" modelValue="Giulietta" modelName="Giulietta"/>
                <item makeValue="Alfa" modelValue="Spider" modelName="Spider"/>
                <item makeValue="Alfa" modelValue="MiTo" modelName="MiTo"/>
                <item makeValue="Alfa" modelValue="GT" modelName="GT"/>
                <item makeValue="Suzuki" modelValue="Swift" modelName="Swift"/>
                <item makeValue="Suzuki" modelValue="Samurai" modelName="Samurai"/>
                <item makeValue="Suzuki" modelValue="Vitara" modelName="Vitara" />
                <item makeValue="Toyota" modelValue="Corolla Verso" modelName="Corolla Verso"/>
                <item makeValue="Toyota" modelValue="Aygo" modelName="Aygo" />
                <item makeValue="Toyota" modelValue="Yaris" modelName="Yaris" />
                <item makeValue="Toyota" modelValue="Avensis" modelName="Avensis"/>
                <item makeValue="Toyota" modelValue="Rav4" modelName="Rav4"/>
                <item makeValue="Jeep" modelValue="Grand Cherokee" modelName="Grand Cherokee"/>
                <item makeValue="Jeep" modelValue="Commander" modelName="Commander"/>
                <item makeValue="Jeep" modelValue="Compass" modelName="Compass"/>
                <item makeValue="Jeep" modelValue="Liberty" modelName="Liberty"/>
                <item makeValue="Jeep" modelValue="Patriot" modelName="Patriot"/>
                <item makeValue="Jeep" modelValue="Renegade" modelName="Renegade"/>
        </root>
        </xf:instance>

然后将它们绑定:

             <xh:tr>
                        <xh:td>
                            <xf:select1 id="vehicle-make-control" bind="vehicle-make-bind" appearance="dropdown">
                                <xf:label ref="$form-resources/vehicle-make/label"/>
                                <xf:hint ref="$form-resources/vehicle-make/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>


                                <xf:itemset ref="instance('makes')/item">
                                    <xf:label ref="@name"/>
                                    <xf:value ref="@value"/>
                                </xf:itemset>
                            </xf:select1>
                        </xh:td>
                    </xh:tr>

对于模型来说同样如此,只是控件名称是车辆模型。 当我选择车辆时,会得到适用于指定车辆的合适车型。制造,但第一个要素是请选择空白。选择Tesla等时,我需要先显示TeslaS。 拥有这样的东西: OPEN PICTURE. 我在初始值XPath表达式$(.)[1]中设置了它,但是它不起作用。

1 个答案:

答案 0 :(得分:2)

我想这是针对您使用Form Builder创建的表单,并且您通过编辑表单源在其中添加了<xf:instance id="makes"><xf:instance id="models">

如果是这样,如果希望下拉菜单将第一项作为其初始值,而不是“请选择”,则需要将字段的初始值设置为第一项的值。您可以在“控制设置”对话框的“公式”选项卡中进行操作。您可以使用以下表达式来实现:

instance('makes')/item[1]/@value