0

我正在尝试从按钮单击事件后面的代码中调用 javascript 函数。下面是我的 javascript 代码。

  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "javascript:clearBox();", true);

函数是

<script type="text/javascript">

function clearBox() {


    alert("Test");

}
</script>

我收到错误“预期对象”

4

2 回答 2

4

您应该使用按钮的 OnClientClick 属性:

<asp:Button runat="server" OnClientClick="clearBox()" />

RegisterClientScriptBlock只会在页面上放置一段代码:

<script type="text/javascript">
      javascript:clearBox();
</script>

这将不起作用,因为它不是有效代码(因为javascript:它用于锚点从 href: 运行 js <a href="javascript:some_code_here()"></a>

如果您愿意,另一个选择RegisterClientScriptBlock是使用 addEventListener 将 onclick 处理程序分配给您的按钮。是代码片段(跨浏览器和纯 JS)。它可以这样使用:

  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "strScript", "addListener('"+button.ClientID+"', 'click', clearBox);", true);

但最好替换RegisterClientScriptBlock[RegisterStartupScript](http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx) 在所有 HTML 加载之前可能会调用第一个并且可能还没有按钮的地方。

Upd 好吧,感谢hvd。他提醒我JS中有标签,实际上javascript:clearBox()是一个有效的代码,但它不会做OP想要的

于 2012-10-02T21:15:47.693 回答
0

使用此代码:

Page.ClientScript.RegisterStartupScript(this.GetType(),  "Error", "clearBox();", true);
于 2012-10-02T21:21:36.463 回答