2017-10-13 132 views
0

在我的XPage我有一個按鈕,我已與SSJS計算的確認文字:確認操作 - 確認文本,計算值不動態?

<xp:button value="Queue" id="btnQueue" 
          styleClass="btn-primary"> 

         <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
          <xp:this.action> 
           <xp:confirm> 
            <xp:this.message><![CDATA[#{javascript:return "Are you sure you want to change value from " + getComponent("From").value + " to " + getComponent("To").value + "?";}]]></xp:this.message> 
           </xp:confirm> 
          </xp:this.action></xp:eventHandler></xp:button> 

我使用相同的組件來計算禁用屬性。這工作正常。爲什麼不計算文本屬性?

回答

1

記住SSJS在服務器上運行,在瀏覽器上運行CSJS。 #{javascript:....}意味着服務器端正在生成所有內容,並且將傳遞給用戶的文字消息傳遞給瀏覽器,然後在用戶單擊該按鈕時生成該瀏覽器。所以「from」和「to」值是服務器上次傳遞給瀏覽器時的值。

不要使用簡單的操作(將服務器端消息傳遞給瀏覽器)。改用CSJS,confirm('My Message');。要從當前瀏覽器頁面獲取變量內容,需要CSJS根據ID從頁面上的相關HTML元素中檢索值。要使用它,請將#{id:From}#{id:To}傳遞到您首選的CSJS方法中,以便按ID檢索元素。

+0

好的我會試試你的方法。但在DDE中說:寫一個javascript表達式來計算值。那麼我可以選擇JavaScript(服務器端),所以我在假設我可以使消息計算。同樣在碼它說 \t \t \t \t \t \t \t \t \t \t <![CDATA [#{JavaScript的:迴歸 「你確定你想從改變」 + getComponent(「從? 「)。價值+」 至 「+ getComponent(」 收件人「。)的值+ 」「;}]]> \t \t \t \t \t \t \t \t \t Malin

+0

如何合併這與其他ssjs代碼csjs?例如我現在確認(「您確定要從」+ XSP.getElementById(「#{id:From}」)。value +「更改爲」+ XSP.getElementById(「#{id:To}」)。值+「?」)。但是,當我選擇取消按鈕SSJS將運行。 : - ? – Malin

+0

正如您可能已經制定的那樣,在客戶端選項卡上,您可以單擊腳本編輯器來輸入CSJS。如果這返回true,SSJS繼續。如果它返回false,則取消。所以,如果你選擇'確認....',如果你選擇取消,它將會停止。 –