2012-11-29 168 views
0

我有一個xpage,我在其中添加了一個按鈕。該按鈕具有一個操作組和其後的其他操作。按鈕onClick事件觸發頁面加載

由於某種原因,事件在頁面加載時觸發。我沒有任何頁面加載事件。該按鈕是一個核心控件,而不是dojo按鈕。

<xp:button id="button1" value="Approve Receiving Sheet" 
    style="font-family:Arial;font-size:9pt;font-style:italic;width:180.0px" 
    styleClass="button1"> 
<xp:eventHandler event="onclick" submit="true" refreshMode="complete"  
    immediate="false" save="true"><xp:this.action><xp:actionGroup> 
<xp:this.condition> 
<![CDATA[#{javascript:var lookup = document1.getDocument().getUniversalID() 
var checkInvoices:string 
checkInvoices = @DbLookup("", "(Invoices by RS UNID)", lookup, 2) 
var returnValue = @If(@Implode(checkInvoices) == "", false, true) 
if(returnValue == false) 
{ 
    var x="alert('msg to user');" 
    view.postScript(x) 
    return false 
} 

return true}]]></xp:this.condition><xp:confirm> 

其他操作遵循條件操作。從按鈕更改按鈕提交不會執行任何操作。 postscript消息顯示爲true或false,這就是爲什麼我將它移入if語句的原因。在此先感謝,史蒂夫

回答

1

編輯:我的第一個答案是不正確的!以下是第二個:

只要調用actionGroup中的一個操作,就會計算條件。這意味着只要有「無關」,你的條件就不會被執行。

但你已經添加了確認行動:這種類型的行動產生CSJS代碼塊,並檢查它就會呈現前行動小組的條件(又名發送到瀏覽器)。這就是爲什麼你的CSJS警報被執行。

P.S. 如果您多次單擊該操作並將條件設置爲false,則無論如何,確認消息都會發生變化。這似乎是一個錯誤。

+0

你是對的。根據條件操作,我確實有一個確認操作。我會同意這看起來像一個錯誤。謝謝Sven。 –