2014-01-15 53 views
0

我想在dijit對話框中進行驗證,就像在簡單的xpage中使用disableClientSideValidation =「true」一樣進行驗證。 當我在一個xpage顯示消息中使用自定義控件,但如果我把它放在dijit對話框關閉而無需驗證在dojo對話框中使用簡單的xpage進行驗證

我使用的按鈕與客戶端腳本 - > dijit.byId(ID的div).show( );

在DIV ID與此代碼的自定義控制:

<xp:inputText id="input1" style="width:160px;" role="button" title="used to text" required="true" disableClientSideValidation="true"> 
    <xp:this.validators> 
     <xp:validateRequired><xp:this.message><![CDATA[The value is empty]]> 
     </xp:this.message></xp:validateRequired> 
    </xp:this.validators> 
</xp:inputText> 
<xp:messages id="messagesReq"></xp:messages> 
<xp:button id="test" value="test"> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
    </xp:eventHandler> 
/xp:button> 

如何提交或保存在自定義的控制形式,但首先顯示的消息?

回答

0

由於您正在刷新整個頁面,因此對話框關閉,因此dojo正在重新構建隱藏的對話框。我recoment你進一步擴展庫使用<xe:dialog>

<xe:dialog id="XSPdialog"> 
    <xp:panel> 
        <!-- your code --> 
    </xp:panel> 
</xe:dialog> 

<xe:dialog>構建一個iframe中,所以你可以改變/驗證/保存上的所有數據源和dispaly響應。另一種解決辦法是將你的對話內容,以一個單獨的XPage並添加iframe到你的對話內容:

<div id="dojoDialog" 
    data-dojo-type="dijit.Dialog" 
    title="My Dialog Title"> 
    <xp:panel tagName="iframe"> 
     <xp:this.attrs> 
      <xp:attr name="src"> 
       <xp:this.value><![CDATA[#{javascript: context.getUrl().toString().split(view.getPageName())[0] + "/dialogContent.xsp"}]]></xp:this.value> 
      </xp:attr> 
     </xp:this.attrs> 
    </xp:panel> 
</div> 

另一種可能性是,以驗證在客戶端的領域。

+0

感謝Michael,我使用了延伸庫中的,現在我可以在對話框中進行驗證 –