0

我有一个 xpage,我在其中添加了一个按钮。该按钮有一个操作组和其他操作。

出于某种原因,该事件在页面加载时触发。我没有任何页面加载事件。按钮是核心控件,而不是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>

其他操作遵循条件操作。将按钮从按钮更改为提交不会做任何事情。后记消息显示为真或假,这就是我将其移至 if 语句的原因。在此先感谢,史蒂夫

4

1 回答 1

1

编辑:我的第一个答案不正确!这是第二个:

一旦调用了 actionGroup 中的操作之一,就会计算条件。这意味着只要“无事可做”,你的条件就不会被执行。

但是您添加了一个确认动作:这种类型的动作会生成一个 CSJS 代码块,并在呈现之前检查动作组的条件(也就是发送到浏览器)。这就是执行您的 CSJS 警报的原因。

PS如果您多次单击该操作并将条件设置为false,则无论如何都会出现确认消息。这似乎是一个错误。

于 2012-12-03T09:52:49.183 回答