You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Acumatica自定义项目屏幕中正确添加JavaScript代码?

在Acumatica自定义屏幕中正确绑定JavaScript按钮点击事件的方法

问题原因

你之前的写法错误在于直接将执行语句(如alert("test");)或未正确引用的函数调用赋值给按钮事件,导致页面加载时该代码被立即执行,而非绑定为点击触发的回调。Acumatica页面渲染过程中可能会触发两次相关逻辑,因此出现两次弹窗。

正确实现方式

方式一:通过JavaScript控件定义函数,按钮绑定函数引用

  1. 在屏幕ASPX代码中添加PXScript控件,定义可复用的JS函数:
<px:PXScript ID="PXScriptTest" runat="server">
    <script type="text/javascript">
        function triggerTestAlert() {
            alert("test");
        }
    </script>
</px:PXScript>
  1. 给目标按钮的ClientSideEvents-Click属性赋值为函数名(注意是字符串形式的函数名,不要加括号调用):
<px:PXButton ID="btnTestClick" runat="server" Text="测试按钮">
    <ClientSideEvents Click="triggerTestAlert" />
</px:PXButton>

方式二:直接在按钮事件中使用匿名函数

无需额外JS控件,直接在按钮的点击事件中用匿名函数包裹执行代码,确保仅在点击时触发:

<px:PXButton ID="btnTestDirect" runat="server" Text="测试按钮">
    <ClientSideEvents Click="function() { alert('test'); }" />
</px:PXButton>

验证效果

按上述方法设置后,页面加载时不会弹出提示框,仅在点击对应按钮时才会触发alert("test")执行。

内容的提问来源于stack exchange,提问作者Jorge Chávez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:55:21