• 主页
  • Xpages:根据单选按钮值隐藏/显示div

Xpages:根据单选按钮值隐藏/显示div

我正在将我所有的组件绑定到一个java源代码。一个字段是一个单选按钮,如果用户选择"Other“作为值,那么我必须显示一个标记为"Other”的字段供用户填写。

我不能使用SJSS来获取单选按钮的值,因为它还不存在。但是,我如何找出用户选择了什么呢?在change事件中,我是否应该设置viewScope变量并刷新辅助区域,并检查viewScope变量的值?

                               <xc:cc_CommonFormField
                                    id="cc_CommonFormField14"
                                    label="Savings"
                                    placeholder="">
                                    <xp:this.facets>

                                        <xp:radioGroup
                                            xp:key="field"
                                            id="radioGroup1"
                                            value="#{doc.prjSav}">

                                            <xp:selectItem
                                                itemLabel="Financial"
                                                itemValue="Financial">
                                            </xp:selectItem>
                                            <xp:selectItem
                                                itemLabel="Safety"
                                                itemValue="Safety">
                                            </xp:selectItem>

             <xp:eventHandler
                                                 event="onchange"
                                                 submit="true"
                                                 refreshMode="partial" refreshId="refresh1">
                                        </xp:eventHandler>
                                    </xp:radioGroup>
                                    </xp:this.facets>



<div id = "refresh1">
    <div id = "innerRefresh"
        rendered="#{javascript:what to put here}">
  </xc:cc_CommonFormField>
                                <xc:cc_CommonFormField placeholder="Enter Other Reason...">
                                    <xp:this.facets>
                                        <xp:inputText
                                            id="inputText3"
                                            xp:key="field"
                                            value="#{doc.prjOther}">
                                        </xp:inputText>
                                    </xp:this.facets>
            </xc:cc_CommonFormField>
        </div>
</div>

下面是正确的代码:

<xc:cc_CommonFormField
                                    id="cc_CommonFormField14"
                                    label="Savings and/or Revenue From the Project"
                                    placeholder="">
                                    <xp:this.facets>
                                        <xp:radioGroup
                                            xp:key="field"
                                            id="radioGroup1"
                                            value="#{doc.prjSav}">
                                            <xp:selectItem
                                                itemLabel="Financial"
                                                itemValue="Financial">
                                            </xp:selectItem>
                                            <xp:eventHandler
                                                event="onclick"
                                                submit="true"
                                                refreshMode="norefresh">
                                                <xp:this.script><![CDATA[var result=null;

for(var i=0; i<document.forms[0].elements.length; i++){
    if(document.forms[0].elements[i].name=="#{id:radioGroup1}" ){

        if(document.forms[0].elements[i].checked == true){
            result=document.forms[0].elements[i].value;
            break; //remove this if for check box groups and collect multiple values above instead
}}}

var sel = x$("#{id:innerRefresh}");

if (result == "Other")
{
x$("#{id:innerRefresh}").removeClass("scoHidden");
x$("#{id:innerRefresh}").addClass("scoVisible");
}
else
{
x$("#{id:innerRefresh}").removeClass("scoVisible")
x$("#{id:innerRefresh}").addClass("scoHidden");
}

XSP.partialRefreshGet("#{id:innerRefresh}")]]></xp:this.script>
                                        </xp:eventHandler></xp:radioGroup>
                                    </xp:this.facets>
                                </xc:cc_CommonFormField>
                                <div id="refresh1">
                                    <xp:div id="innerRefresh" styleClass="scoHidden">
                                        <xc:cc_CommonFormField placeholder="Enter Other Reason...">
                                            <xp:this.facets>
                                                <xp:inputText
                                                    id="inputText3"
                                                    xp:key="field"
                                                    value="#{doc.prjOther}">
                                                </xp:inputText>
                                            </xp:this.facets>
                                        </xc:cc_CommonFormField>

转载请注明出处:http://www.jxbyjx.net/article/20230512/2412242.html