按钮只能在XPage上单击一次

问题描述 投票:0回答:1

我有下面的XPage,它只有一个表,只有两个tr。

[第一个是按钮本身,它在第一次单击时会放入viewScope['showPasswordTr']布尔值true值,在再次单击时会放入false布尔值。

第二个tr有一个输入,如果viewScope['showPasswordTr']为true,则呈现该输入。

我遇到的问题是我只能单击一次按钮,并且由于存在输入字段,所以它是100%。如果我删除它,它将按预期工作

第二次,依此类推,按钮仅冻结并且不执行指定的onclick事件。为什么会这样呢?而我该如何使其按预期工作呢?

提前感谢。

编辑

好吧,这显然是由于required属性设置为true ...所以,我是否应该仅在受干扰的控件中检查元素是否为空?这是一个好习惯吗?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

<xp:table id="buttonTable">
    <xp:tr id="buttonTr">
        <xp:td id="buttonTd">
            <xp:button id="authAsPersonButton" 
                value="This button can be clicked only once" />
                <xp:eventHandler event="onclick" submit="true"
                    refreshMode="partial" execId="buttonTable"
                    refreshId="buttonTable">
                    <xp:this.action>
                        <![CDATA[#{javascript:
                        print("clicked");
                        if(viewScope['showPasswordTr']) 
                        {
                            viewScope['showPasswordTr'] = false;
                        }
                        else 
                        {
                            viewScope['showPasswordTr'] = true;
                        }

                        }]]>
                    </xp:this.action>
                </xp:eventHandler>
        </xp:td>
    </xp:tr>

    <xp:tr id="passwordLabelTr" rendered="#{javascript:
                return  viewScope['showPasswordTr'] == true;
                }">

            <xp:td id="passwordLabelTd">
                <xp:text id="passwordText" style="font-size: 14px;">
                    <xp:this.value>
                        <![CDATA[#{javascript: 
                            return 'password:';
                            }]]>
                    </xp:this.value>
                </xp:text>
            </xp:td>


        <xp:td id="passwordInputTd" align="right">
            <xp:inputText id="passwordInput" password="true"
                required="true">
            </xp:inputText>
        </xp:td>

    </xp:tr>

</xp:table>

</xp:view>
xpages lotus-notes lotus-domino view-scope
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.