SSJS代码不在XPages onclick中执行
在我的代码中,我有以下事件处理程序SSJS代码不在XPages onclick中执行,xpages,lotus-notes,lotus-domino,xpages-ssjs,ssjs,Xpages,Lotus Notes,Lotus Domino,Xpages Ssjs,Ssjs,在我的代码中,我有以下事件处理程序 <xp:eventHandler event="onclick" submit="true" refreshMode="partial" disableValidators="true" refreshId="#{javascript:compositeData.refreshid}"> <
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" disableValidators="true"
refreshId="#{javascript:compositeData.refreshid}">
<xp:this.script><![CDATA[
alert('clicked');
]]></xp:this.script>
<xp:this.action><![CDATA[#{javascript:print("jkafkjsfjk");}]]></xp:this.action>
</xp:eventHandler>
不幸的是,我从来没有在控制台中打印jkafkjsfjk
,而CSJS代码工作正常,并弹出单击警报
我知道不执行它的最常见原因与一些等于null或空的必填字段有关
但是,我已经注释掉了所有内容,但代码仍然没有执行
我如何解决这个问题?原因是什么
提前谢谢。有几件事
首先,如果您的CSJS返回false,那么SSJS将永远不会运行(这在您希望用户确认时非常方便…)。我想你应该在这里没事,但你可以回到真实的安全
第二,部分刷新、刷新ID和部分执行可能会做一些您所期望的事情。所以对于测试,我只需要做一个完整的刷新并跳过id
eventhandler设置在什么类型的对象上
我通常将此类事件处理程序用于链接或按钮,如:
<xp:button value="Add zone" id="button2" styleClass="btn-xs btn-primary">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="fields">
<xp:this.action><![CDATA[#{javascript:AssociationAdmin.createZone()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
这个很好用:-)
下面是一个先确认的示例:
<xp:link escape="true" text="Delete" id="link5" styleClass="action" rendered="#{javascript:!AssociationAdmin.isCatchInfoInUse(row.getKey())}">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete" id="eventHandler5">
<xp:this.action><![CDATA[#{javascript:AssociationAdmin.removeCatchInfo(row.key);}]]></xp:this.action>
<xp:this.script><![CDATA[return window.confirm("Are you sure you want to delete these fields: #{javascript:row.getName()}?\n\nDeletion cannot be undone!!")]]></xp:this.script>
</xp:eventHandler>
</xp:link>
进一步说明:
您可能希望提交而不进行验证。您可以通过将disableValidators=“true”
添加到eventhandler来实现这一点
请记住在拥有eventhandler的控件上有一个id
。只是浪费了一个晚上和一个早上,因为按钮打开对话框没有和id
attributeee
希望这些样品能让您满意:-)
/约翰有几件事
首先,如果您的CSJS返回false,那么SSJS将永远不会运行(这在您希望用户确认时非常方便…)。我想你应该在这里没事,但你可以回到真实的安全
第二,部分刷新、刷新ID和部分执行可能会做一些您所期望的事情。所以对于测试,我只需要做一个完整的刷新并跳过id
eventhandler设置在什么类型的对象上
我通常将此类事件处理程序用于链接或按钮,如:
<xp:button value="Add zone" id="button2" styleClass="btn-xs btn-primary">
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="fields">
<xp:this.action><![CDATA[#{javascript:AssociationAdmin.createZone()}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
这个很好用:-)
下面是一个先确认的示例:
<xp:link escape="true" text="Delete" id="link5" styleClass="action" rendered="#{javascript:!AssociationAdmin.isCatchInfoInUse(row.getKey())}">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete" id="eventHandler5">
<xp:this.action><![CDATA[#{javascript:AssociationAdmin.removeCatchInfo(row.key);}]]></xp:this.action>
<xp:this.script><![CDATA[return window.confirm("Are you sure you want to delete these fields: #{javascript:row.getName()}?\n\nDeletion cannot be undone!!")]]></xp:this.script>
</xp:eventHandler>
</xp:link>
进一步说明:
您可能希望提交而不进行验证。您可以通过将disableValidators=“true”
添加到eventhandler来实现这一点
请记住在拥有eventhandler的控件上有一个id
。只是浪费了一个晚上和一个早上,因为按钮打开对话框没有和id
attributeee
希望这些样品能让您满意:-)
/约翰你好,约翰非常感谢你的回答。事实上,问题仍然与一些输入有关(可能是空的或空的)。。。因此,我设置为
exemode=partial
,并分别提供了必要的ID。然而,我不知道控制的问题是什么。我无法使用完全刷新模式执行。好的,只是更新了一些您可以尝试的内容。您好John非常感谢您的回答。事实上,问题仍然与一些输入有关(可能是空的或空的)。。。因此,我设置为exemode=partial
,并分别提供了必要的ID。然而,我不知道控制的问题是什么。我无法使用完全刷新模式执行。好的,只是更新了一些您可以尝试的内容。