2017-10-13 94 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,则取消。所以,如果你选择'确认....',如果你选择取消,它将会停止。 –