所有复选框均由trigger - orbeon / xforms检查

时间:2015-03-26 11:21:16

标签: checkbox orbeon xforms

这是我的源代码:

<xh:head>
    <xh:title>Newsletter</xh:title>
    <xf:model id="fr-form-model" xxf:expose-xpath-types="true">

        <!-- Main instance -->
        <xf:instance id="fr-form-instance">
            <form>
                    <News_choice>
                        <Sub_select>zamawiam</Sub_select>

                    </News_choice>
                    <Zamowienie>
                        <Zamowienie_wybor/>
                        <Select_all/>
                        <Deselect_all/>
                    </Zamowienie>
                    <Rezygnacja>
                        <Rezygnacja_wybor/>
                        <SelectAll_1/>
                        <Deselect_all_1/>
                    </Rezygnacja>
                    <Mail>
                        <Email/>
                    </Mail>
            </form>
        </xf:instance>

        <!-- Bindings -->
        <xf:bind id="fr-form-binds" ref="instance('fr-form-instance')">
            <xf:bind id="News_choice-bind" name="News_choice" ref="News_choice">
                <xf:bind id="Sub_select-bind" ref="Sub_select" name="Sub_select"/>

            </xf:bind>
            <xf:bind id="Zamowienie-bind" ref="Zamowienie" name="Zamowienie"
                     relevant="$Sub_select = 'zamawiam'">
                <xf:bind id="Zamowienie_wybor-bind" ref="Zamowienie_wybor" name="Zamowienie_wybor"/>
                <xf:bind id="Select_all-bind" ref="Select_all" name="Select_all"/>
                <xf:bind id="Deselect_all-bind" ref="Deselect_all" name="Deselect_all"/>
            </xf:bind>
            <xf:bind id="Mail-bind" ref="Mail" name="Mail">
                <xf:bind id="Email-bind" ref="Email" name="Email"
                         constraint="matches(.,'^[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}') or string-length(.) = 0"/>
            </xf:bind>
            <xf:bind id="Rezygnacja-bind" ref="Rezygnacja" name="Rezygnacja"
                     relevant="$Sub_select = 'rezygnuje'">
                <xf:bind id="Rezygnacja_wybor-bind" ref="Rezygnacja_wybor" name="Rezygnacja_wybor"/>
                <xf:bind id="SelectAll_1-bind" ref="SelectAll_1" name="SelectAll_1"/>
                <xf:bind id="Deselect_all_1-bind" ref="Deselect_all_1" name="Deselect_all_1"/>
            </xf:bind>
        </xf:bind>

        <!-- Metadata -->
        <xf:instance xxf:readonly="true" id="fr-form-metadata">
            <metadata>
                <application-name>Subskrypcja</application-name>
                <form-name>Newsletter</form-name>
                <title xml:lang="pl">Newsletter</title>
                <description xml:lang="pl"/>
            </metadata>
        </xf:instance>

        <!-- Attachments -->
        <xf:instance id="fr-form-attachments">
            <attachments>
                <css mediatype="text/css" filename="" size=""/>
                <pdf mediatype="application/pdf" filename="" size=""/>
            </attachments>
        </xf:instance>

        <!-- All form resources -->
        <!-- Don't make readonly by default in case a service modifies the resources -->
        <xf:instance id="fr-form-resources" xxf:readonly="false">
            <resources>
                <resource xml:lang="pl">
                    <Email>
                        <label>&lt;b&gt;&lt;center&gt;Prosimy o podanie adresu e-mail, pod który ma zostać wysłany link aktywacyjny.&lt;/center&gt;&lt;/b&gt;</label>
                        <hint/>
                    </Email>
                    <Rezygnacja_wybor>
                       <item id='1'>
                            <label>Dostawy</label>
                            <value>dostawy</value>
                            <hint/>
                        </item>
                        <item id='2'>
                            <label>Konsultacje</label>
                            <value>konsultacje</value>
                            <hint/>
                        </item>
                        <item id='3'>
                            <label>Ogłoszenia urzędowe</label>
                            <value>ogloszenia</value>
                            <hint/>
                        </item>
                        <item id='4'>                  
                            <label>Usługi</label>
                            <value>uslugi</value>
                            <hint/>
                        </item>
                        <item id='5'>                  
                            <label>Informacje o wynikach naboru</label>
                            <value>info</value>
                            <hint/>
                        </item>
                        <item id='6'>                  
                            <label>Nabór - Urząd Miasta</label>
                            <value>nabor</value>
                            <hint/>
                        </item>
                        <item id='7'>                  
                            <label>Roboty budowlane</label>
                            <value>roboty</value>
                            <hint/>
                        </item>
                        <label>&lt;center&gt;&lt;b&gt;Prosimy o wybranie, jakich działów niniejszego portalu ma dotyczyć rezygnacja z powiadomień.&lt;/center&gt;&lt;/b&gt;</label>
                        <hint/>
                    </Rezygnacja_wybor>
                    <SelectAll_1>
                        <label>Zaznacz wszystkie</label>
                        <hint/>
                    </SelectAll_1>
                    <Deselect_all_1>
                        <label>Odznacz wszystkie</label>
                        <hint/>
                    </Deselect_all_1>
                    <Zamowienie_wybor>



                        <label>&lt;center&gt;&lt;b&gt;Prosimy o wybranie, jakich działów niniejszego portalu mają dotyczyć powiadomienia:&lt;/b&gt;&lt;/center&gt;&lt;b&gt;&lt;/b&gt;</label>
                        <hint/>
                        <item id='1'>
                            <label>Dostawy</label>
                            <value>dostawy</value>
                            <hint/>
                        </item>
                        <item id='2'>
                            <label>Konsultacje</label>
                            <value>konsultacje</value>
                            <hint/>
                        </item>
                        <item id='3'>
                            <label>Ogłoszenia urzędowe</label>
                            <value>ogloszenia</value>
                            <hint/>
                        </item>
                        <item id='4'>                  
                            <label>Usługi</label>
                            <value>uslugi</value>
                            <hint/>
                        </item>
                        <item id='5'>                  
                            <label>Informacje o wynikach naboru</label>
                            <value>info</value>
                            <hint/>
                        </item>
                        <item id='6'>                  
                            <label>Nabór - Urząd Miasta</label>
                            <value>nabor</value>
                            <hint/>
                        </item>
                        <item id='7'>                  
                            <label>Roboty budowlane</label>
                            <value>roboty</value>
                            <hint/>
                        </item>
                    </Zamowienie_wybor>
                    <Select_all>
                        <label>Zaznacz wszystkie</label>
                        <hint/>
                    </Select_all>
                    <Deselect_all>
                        <label>Odznacz wszystkie</label>
                        <hint/>
                    </Deselect_all>
                    <Sub_select>



                        <label>&lt;b&gt;&lt;center&gt;Aby stać się subskrybentem powiadomień należy zaznaczyć "zamawiam subskrycję". W celu rezygnacji prosimy o wybranie opcji "rezygnuję z subskrypcji".&lt;/b&gt;&lt;/center&gt;</label>
                        <hint/>
                        <item>
                            <label>Zamawiam subskrypcję</label>
                            <value>zamawiam</value>
                            <hint/>
                        </item>
                        <item>
                            <label>Rezygnuję z subskrypcji</label>
                            <value>rezygnuje</value>
                            <hint/>
                        </item>
                    </Sub_select>
                    <News_choice>
                        <label>Subskrypcja</label>
                    </News_choice>
                    <Zamowienie>
                        <label>Zamówienie subskrypcji</label>
                        <help/>
                    </Zamowienie>
                    <Rezygnacja>
                        <label>Rezygnacja z subskrypcji</label>
                        <help/>
                    </Rezygnacja>
                    <Mail>
                        <label>Email</label>
                        <help/>
                    </Mail>

                </resource>
            </resources>
        </xf:instance>

        <!-- Utility instances for services -->
        <xf:instance id="fr-service-request-instance" xxf:exclude-result-prefixes="#all">
            <request/>
        </xf:instance>

        <xf:instance id="fr-service-response-instance" xxf:exclude-result-prefixes="#all">
            <response/>
        </xf:instance>

    </xf:model>
</xh:head>
<xh:body>
    <fr:view>
        <fr:body xmlns:xbl="http://www.w3.org/ns/xbl"
                 xmlns:oxf="http://www.orbeon.com/oxf/processors"
                 xmlns:p="http://www.orbeon.com/oxf/pipeline">
            <fr:section id="News_choice-control" bind="News_choice-bind">
                <xf:label ref="$form-resources/News_choice/label"/>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:select1 id="Sub_select-control" appearance="full" bind="Sub_select-bind">
                                <xf:label ref="$form-resources/Sub_select/label" mediatype="text/html"/>
                                <xf:hint ref="$form-resources/Sub_select/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>


                                <xf:itemset ref="$form-resources/Sub_select/item">
                                    <xf:label ref="label"/>
                                    <xf:value ref="value"/>
                                    <xf:hint ref="hint"/>
                                </xf:itemset>
                            </xf:select1>

                        </xh:td>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
            </fr:section>
            <fr:section id="Zamowienie-control" bind="Zamowienie-bind">
                <xf:label ref="$form-resources/Zamowienie/label"/>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:select id="Zamowienie_wybor-control" appearance="full" bind="Zamowienie_wybor-bind">
                                <xf:label ref="$form-resources/Zamowienie_wybor/label" mediatype="text/html"/>
                                <xf:hint ref="$form-resources/Zamowienie_wybor/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>



                                <xf:itemset ref="$form-resources/Zamowienie_wybor/item">
                                    <xf:label ref="label"/>
                                    <xf:value ref="value"/>
                                    <xf:value ref="hint"/>
                                </xf:itemset>
                            </xf:select>
                        </xh:td>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:trigger id="Select_all-control" bind="Select_all-bind">

                                <xf:label ref="$form-resources/Select_all/label"/>

                        <xf:hint ref="$form-resources/Select_all/hint"/>
                               <xf:alert ref="$fr-resources/detail/labels/alert"/>

                            </xf:trigger>
                        </xh:td>
                        <xh:td>
                            <xf:trigger id="Deselect_all-control" bind="Deselect_all-bind">
                                <xf:label ref="$form-resources/Deselect_all/label"/>

                                <xf:hint ref="$form-resources/Deselect_all/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>

                            </xf:trigger>
                        </xh:td>
                        <xh:td/>
                        <xh:td/>
                        <xh:td/>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
            </fr:section>
            <fr:section id="Rezygnacja-control" bind="Rezygnacja-bind">
                <xf:label ref="$form-resources/Rezygnacja/label"/>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:select id="Rezygnacja_wybor-control" appearance="full" bind="Rezygnacja_wybor-bind">
                                <xf:label ref="$form-resources/Rezygnacja_wybor/label" mediatype="text/html"/>
                                <xf:hint ref="$form-resources/Rezygnacja_wybor/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>


                                <xf:itemset ref="$form-resources/Rezygnacja_wybor/item">
                                    <xf:label ref="label"/>
                                    <xf:value ref="value"/>
                                    <xf:value ref="hint"/>
                                </xf:itemset>
                            </xf:select>
                        </xh:td>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:trigger id="SelectAll_1-control" bind="SelectAll_1-bind">
                                <xf:label ref="$form-resources/SelectAll_1/label"/>

                                <xf:hint ref="$form-resources/SelectAll_1/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>

                            </xf:trigger>
                        </xh:td>
                        <xh:td>
                            <xf:trigger id="Deselect_all_1-control" bind="Deselect_all_1-bind">
                                <xf:label ref="$form-resources/Deselect_all_1/label"/>

                                <xf:hint ref="$form-resources/Deselect_all_1/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>

                            </xf:trigger>
                        </xh:td>
                        <xh:td/>
                        <xh:td/>
                        <xh:td/>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
            </fr:section>
            <fr:section id="Mail-control" bind="Mail-bind">
                <xf:label ref="$form-resources/Mail/label"/>
                <fr:grid>
                    <xh:tr>
                        <xh:td>
                            <xf:input id="Email-control" bind="Email-bind">
                                <xf:label ref="$form-resources/Email/label" mediatype="text/html"/>
                                <xf:hint ref="$form-resources/Email/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>                    
                            </xf:input>
                        </xh:td>
                        <xh:td/>
                    </xh:tr>
                </fr:grid>
            </fr:section>
        </fr:body>

我已经设置了一个名为“Select_all”的触发器,用于检查“Zamowienie_wybor”中的所有复选框,但我不知道如何以正确的方式执行此操作。 名为“Deselect_all”的第二个触发器应删除“Zamowienie_wybor”字段的所有复选框。 我尝试使用setvalue动作,但它不起作用。 我会很感激所有的建议。

1 个答案:

答案 0 :(得分:0)

您可以使用xxf:itemset()函数执行此操作,该函数返回与复选框相关的所有信息。使用该功能,您可以获得&#34;值&#34;对于每个复选框,连接值,并将其设置为控件的值,因此选中所有复选框。当然,完全相同的代码适用于任何选择控件,允许选择多个值。

你可以看到this full example,其中有&#34;有趣的部分&#34;强调: