gpt4 book ai didi

javascript - 如何在 xPage 上使用 CSJS 获取提交值?

转载 作者:行者123 更新时间:2023-11-30 15:52:59 24 4
gpt4 key购买 nike

我可以在 onItemClick 事件中使用 SSJS 来点击弹出菜单项:

context.getSubmittedValue()

但是如何在同一个 onItemClick 事件中使用 CSJS 来点击项目?
这似乎没有帮助:

thisEvent.target.id

这个不返回任何东西:

thisEvent.target.innerHTML

这是我的xPage:

<xe:popupMenu id="popupMenu1">
<xe:this.treeNodes>
<xe:basicLeafNode label="menu item 1" submitValue="mi1"></xe:basicLeafNode>
<xe:basicLeafNode label="menu item 2" submitValue="mi2"></xe:basicLeafNode>
</xe:this.treeNodes>
<xp:eventHandler event="onItemClick" submit="true"
refreshMode="complete">
<xe:this.action><![CDATA[#{javascript:print(context.getSubmittedValue());}]]></xe:this.action>
<xe:this.script><![CDATA[alert(thisEvent.target.innerHTML);]]></xe:this.script>
</xp:eventHandler>
</xe:popupMenu>

我需要获取有助于我识别在 CSJS 中单击了哪个项目的任何信息

最佳答案

您可以使用每个 basicLeafNode 的 onClick 事件来确定在 CSJS 中单击了什么。

这是一个如何使用 basicLeafNode 的 onClick 事件的例子。

如果您需要执行 SSJS 代码,您可以在具有运行 SSJS 代码的事件处理程序的隐藏按钮上触发点击事件。

请注意,当您将 onClick 事件添加到 basicLeafNode 时,它​​会覆盖 onItemClick 事件:Cannot get XPages toolbar onItemClick event to execute when basicLeafNode contains onClick event

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[
XSP.openMenu(thisEvent,#{javascript:getComponent('popupMenu1').getMenuCtor()});
]]></xp:this.script>
</xp:eventHandler>
</xp:button>
<xe:popupMenu id="popupMenu1">
<xe:this.treeNodes>
<xe:basicLeafNode label="menu item 1" submitValue="mi1">
<xe:this.onClick><![CDATA[document.getElementById("#{id:mi1Event}").click();]]></xe:this.onClick>
</xe:basicLeafNode>
<xe:basicLeafNode label="menu item 2" submitValue="mi2">
<xe:this.onClick><![CDATA[document.getElementById("#{id:mi2Event}").click();]]></xe:this.onClick>
</xe:basicLeafNode>
</xe:this.treeNodes>

<xp:eventHandler event="onItemClick" submit="true" refreshMode="complete">
<xe:this.action>
<![CDATA[#{javascript:
print("onItemClick event running"); // Will not run!
}]]></xe:this.action>
</xp:eventHandler>
</xe:popupMenu>


<xp:button value="_mi1" id="mi1Event" style="display:none;">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" immediate="false" onComplete="console.log('onComplete of mi1 running');" refreshId="popupMenu1">
<xp:this.action><![CDATA[#{javascript:print("ssjs code for mi1 running");}]]></xp:this.action>
</xp:eventHandler>
</xp:button>

<xp:button value="_mi2" id="mi2Event" style="display:none;">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" immediate="false" onComplete="alert('onComplete of mi2 running');" refreshId="popupMenu1">
<xp:this.action><![CDATA[#{javascript:print("ssjs code for mi2 running");}]]></xp:this.action>
</xp:eventHandler>
</xp:button>

</xp:view>

关于javascript - 如何在 xPage 上使用 CSJS 获取提交值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39022798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com