我有一個xe:對話框,其中包含Dojo表單控件,用於輸入多個值並在保存時創建一個新文檔。所有值都是必需的,我使用xe:djValidationTextBox,xe:djTimeTextBox,xe:djComboBox等組合來輸入值並執行客戶端驗證。無法關閉客戶端驗證XPE上的xe:對話框
這裏是輸入控件之一的一個示例:
<xe:djValidationTextBox
id="djValidationTextBox2" value="#{document3.ChemTo}"
required="true" invalidMessage="Must enter the To change number"
promptMessage="Enter the To change number">
<xe:this.converter>
<xp:convertNumber type="number"></xp:convertNumber>
</xe:this.converter>
</xe:djValidationTextBox>
保存按鈕的偉大工程的所有驗證通過後,創建新文檔。
<xp:button value="Save" id="button7">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:actionGroup>
<xp:saveDocument var="document3">
</xp:saveDocument>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:var c = `enter code here`getComponent("dialog1");
c.hide("panelChemLog");}]]></xp:this.script>
</xp:executeScript>
</xp:actionGroup>
</xp:this.action>
</xp:eventHandler>
</xp:button>
問題出在取消按鈕。當我單擊「取消」按鈕時,仍然可以獲取所有必需的Dojo輸入控件的客戶端驗證消息,而不會顯示任何值。我可以通過單擊對話框右上角的大「X」來成功取消對話框,但無法關閉下面兩個取消按鈕的服務器端或客戶端代碼。
<xp:button value="Cancel CS" id="cancelButton">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.script><![CDATA[XSP.closeDialog("#{id:dialog1 }");]]>
</xp:this.script>
</xp:eventHandler>
</xp:button>
<xp:button value="Cancel SS" id="cancel2Button">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var c =
getComponent("dialog1");
c.hide();}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
如何編碼按鈕關閉對話框並繞過客戶端驗證?
我的建議:做出關閉按鈕的自定義代碼,設置特定的標誌(隱藏編輯,JS變量)在CS驗證器中使用,以跳過驗證... –