Xpages “禁用”复选框在保存时丢失值

Xpages “禁用”复选框在保存时丢失值,xpages,Xpages,我有一个已禁用的复选框。我单击一个按钮,将该复选框的值设置为“选中”。当我转到“保存”时,复选框将丢失其值。有人有什么想法吗?下面是一个简单的模型: <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core"> <xp:this.data> <xp:dominoDocument var=

我有一个已禁用的复选框。我单击一个按钮,将该复选框的值设置为“选中”。当我转到“保存”时,复选框将丢失其值。有人有什么想法吗?下面是一个简单的模型:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.data>
        <xp:dominoDocument
            var="MainForm"
            formName="MainForm" />
    </xp:this.data>
    <xp:checkBox
        text="CheckBox"
        id="CheckBox"
        value="#{MainForm.CheckBox}"
        disabled="true"
        checkedValue="Y"
        uncheckedValue="N">
    </xp:checkBox>
    <xp:br></xp:br>
    <xp:button
        id="setBc"
        value="Set CheckBox">
        <xp:eventHandler
            event="onclick"
            submit="true"
            refreshMode="partial"
            refreshId="CheckBox">
            <xp:this.action><![CDATA[#{javascript:getComponent("CheckBox").setValue("Y");}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
    <xp:button
        value="Save"
        id="button5">
        <xp:eventHandler
            event="onclick"
            submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:MainForm.save();}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
</xp:view>

页面提交中不包括禁用的控件


您可以将禁用的复选框与xp:INPUTHIDEN控件相结合,该控件是包含在页面提交中的隐藏输入字段。

禁用的控件不包含在页面提交中


您可以将禁用的复选框与xp:inputHidden控件相结合,该控件是一个隐藏的输入字段,包含在页面提交中。

这可能是Domino8.5.3的一个特定问题(如果您正在使用)。 我们注意到,自从升级到8.5.3之后,我们遇到了一个问题(在普通的经典domino页面上),即标记为“disabled”的字段无法保存到文档中。 我们必须通过不使用“适当”字段来构建此字段,该字段对于以后必须保存的值是禁用的。 另一个解决方法是在post脚本中发布之前删除禁用的设置


我们相当确信这一切都是在8.5.3发布时开始发生的,这可能是Domino8.5.3的一个特定问题(如果您正在使用的话)。 我们注意到,自从升级到8.5.3之后,我们遇到了一个问题(在普通的经典domino页面上),即标记为“disabled”的字段无法保存到文档中。 我们必须通过不使用“适当”字段来构建此字段,该字段对于以后必须保存的值是禁用的。 另一个解决方法是在post脚本中发布之前删除禁用的设置


我们相当确定这一切都是从8.5.3的发布开始的,似乎禁用的组合框是随页面一起提交的?这就是我困惑的地方。感谢InPurthidden的想法。请记住,即使将值发布到服务器,如果与该值关联的组件被视为已禁用,则该值仍将在更新\u组件\u模型期间被忽略,前提是数据源可以理解地假设禁用字段的值没有更改。我不知道这是否是它的实际行为,但会调查的。谢谢蒂姆。我相信,如果禁用字段上的值没有更改,则该值将被忽略。似乎禁用的组合框与页面一起提交?这就是我困惑的地方。感谢InPurthidden的想法。请记住,即使将值发布到服务器,如果与该值关联的组件被视为已禁用,则该值仍将在更新\u组件\u模型期间被忽略,前提是数据源可以理解地假设禁用字段的值没有更改。我不知道这是否是它的实际行为,但会调查的。谢谢蒂姆。我相信,如果禁用字段上的值没有更改,则该值将被忽略。根据W3C HTMl规范第17.13.2章,只有成功的控件才能“有效”提交表单,并且根据规范,禁用的控件不能成功提交。因此,Domino行为是正确的。根据W3C HTMl规范第17.13.2章,只有成功的控件才能“有效”提交表单,并且根据规范,禁用的控件不能成功提交。因此,多米诺行为是正确的。如果行为现在是正确的,那就可以了,但到目前为止它还没有正确吗?与目前开发的所有应用程序的兼容性如何?如果现在的行为是正确的,那也没关系,但到目前为止是否还不正确?与迄今为止开发的所有应用程序的兼容性如何?