如果存在字段级别验证,则不会触发onChange事件

时间:2014-10-05 18:47:32

标签: validation submit xpages

以下是非常简化的XPage的来源。它有一个带有两个选项的单选按钮组和一个onchange事件,它根据所选的值设置viewScope.vsCompanies。然后有一个名为Title的字段,我已经制作了必需的字段。如果我点击单选按钮,它会从Contract更改为Lease并返回,但onchange事件永远不会触发。相反,我得到一个警告,标题是必需的。我只希望在提交文档时触发验证,以便onchange正常工作。我是否必须使每一个验证都以提交被按下为条件,这似乎是很多额外的工作。我可以在按下提交按钮时设置viewScope,只有在viewScope为true时才需要它。

很抱歉错过了添加代码ps clientsideValidation被禁用

<xp:this.data>
        <xp:dominoDocument var="CLDoc"
            databaseName="Client Apps\LGI\XPages\LGIContracts-Leases.nsf"
            formName="frmCL">
        </xp:dominoDocument>
    </xp:this.data>
<xp:this.properties>
        <xp:parameter name="xsp.client.validation" value="false" />
    </xp:this.properties>
    <xp:br></xp:br>
    <xp:messages id="messages1"></xp:messages>
    <xp:radioGroup id="radioGroup1" value="#{CLDoc.Type}">
        <xp:selectItem itemLabel="Contract"></xp:selectItem>
        <xp:selectItem itemLabel="Lease"></xp:selectItem>
        <xp:eventHandler event="onchange" submit="true"
            refreshMode="partial" refreshId="comboBox1">
            <xp:this.action><![CDATA[#{javascript:if (CLDoc.getValue("Type") == "Contract"){
    viewScope.vsCompanies = ["A","B","C"];
    return;
    break;
}else{
    viewScope.vsCompanies = ["X","Y","Z"];
    return;
    break;
}}]]></xp:this.action>
        </xp:eventHandler>
    </xp:radioGroup>
    Company
    <xp:br></xp:br>
    <xp:comboBox id="comboBox1" value="#{CLDoc.Company}">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:viewScope.vsCompanies}]]></xp:this.value>
        </xp:selectItems>
    </xp:comboBox>
    <xp:br></xp:br>

    Title
    <xp:br></xp:br>
    <xp:inputText id="inputText1" style="width:392.0px" value="#{CLDoc.Title}"
        required="true">
        <xp:this.validators>
            <xp:validateRequired message="Title is required"></xp:validateRequired>
        </xp:this.validators>
    </xp:inputText>

1 个答案:

答案 0 :(得分:3)

我相信如果您参加活动,您可以禁用该活动的验证工具。

[编辑]

我在这里发现了一个重复的问题。 xpages validation on field having onChange script

看起来事件处理程序具有以下参数 disableValidators = “真”