2012-08-24 56 views
0

我開發一個以下設置: - 客戶端驗證是關閉 - 我用 1.6和 8.5.3蓮花的XPages擴展庫數量微調,防止提交

只有兩個有在頁面上,具有required = true屬性。

`

<xp:this.resources> 
    <xp:dojoModule name="dijit.form.ValidationTextBox"></xp:dojoModule> 
</xp:this.resources> 
<xp:this.data> 
    <xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument> 
</xp:this.data> 
<xp:inputText id="inputText1" 
    dojoType="dijit.form.ValidationTextBox" 
    value="#{applicationScope.test}"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="required" value="true"></xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 
<xp:button value="Label" id="button1"> 
    <xp:eventHandler event="onclick" submit="true" 
     refreshMode="complete"> 
     <xp:this.action> 
      <xp:saveDocument var="document1"></xp:saveDocument> 
     </xp:this.action> 
    </xp:eventHandler> 
</xp:button> 
<xp:br></xp:br> 
<xp:inputText id="inputText2" 
    dojoType="dijit.form.ValidationTextBox"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="required" value="true"></xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 
</xp:view> 

`

通過點擊提交文檔保存到數據庫中。

如果我從[tag:擴展庫]中添加,這會阻止提交,則應先填充所需的輸入。

`

<xp:this.resources> 
    <xp:dojoModule name="dijit.form.ValidationTextBox"></xp:dojoModule> 
</xp:this.resources> 
<xp:this.data> 
    <xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument> 
</xp:this.data> 
<xp:inputText id="inputText1" 
    dojoType="dijit.form.ValidationTextBox" 
    value="#{applicationScope.test}"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="required" value="true"></xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 
<xp:button value="Label" id="button1"> 
    <xp:eventHandler event="onclick" submit="true" 
     refreshMode="complete"> 
     <xp:this.action> 
      <xp:saveDocument var="document1"></xp:saveDocument> 
     </xp:this.action> 
    </xp:eventHandler> 
</xp:button> 
<xp:br></xp:br> 
<xp:inputText id="inputText2" 
    dojoType="dijit.form.ValidationTextBox"> 
    <xp:this.dojoAttributes> 
     <xp:dojoAttribute name="required" value="true"></xp:dojoAttribute> 
    </xp:this.dojoAttributes> 
</xp:inputText> 
<xe:djNumberSpinner id="djNumberSpinner1"></xe:djNumberSpinner></xp:view> 

`

是否有人知道如何解決這一問題?

任何幫助表示讚賞。

回答

0

你在XPage上將dojoParseOnLoad設置爲「true」嗎?這聽起來像你可能沒有完成,在這種情況下,xp:inputTexts不會轉換爲Dojo驗證文本框。

但是,只要添加擴展庫編號微調器,該控件即使未指定它,也會自動將dojoParseOnload添加到XPage。所以你的驗證文本框也會立即生效。

另外,由於您使用的是Dojo控件,因此關閉客戶端驗證無關緊要。 Dojo驗證只能在客戶端工作。您不能使用Dojo控件並運行驗證服務器端。

+0

謝謝你的回答。我已經將parseonload設置爲true,這個stackoverflow編輯器會削減源代碼的第一行。

在客戶端發生的一切都包括阻止提交的驗證。

jlehocz

+0

我已經添加了另一個關於這個問題的問題與xpage的html源代碼。對我來說,似乎Xtension庫會自動將dijit.form.Form添加到瀏覽器中頁面的表單,這似乎阻止了文檔的保存或部分刷新。 – jlehocz