下面是非常簡化的XPage的源代碼。它有一個帶有兩個選項的單選按鈕組和一個根據所選值設置viewScope.vsCompanies的onchange事件。然後有一個叫做Title的字段,我已經制作了Required。如果我單擊單選按鈕,它將從合同變爲租賃並返回,但是onchange事件從不會觸發。相反,我得到一個警告,標題是必需的。我只想要在提交文檔時觸發驗證,以便onchange正常工作。我是否必須在提交被按下時進行每個驗證條件,這似乎是很多額外的工作。當提交按鈕被按下時,我可以設置一個viewScope,並且只有當viewScope爲true時才需要它。如果存在字段級別驗證,onChange事件不會觸發
我現在不添加代碼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>
下面有您的文章沒有源。 – 2014-10-05 18:51:25