0

我正在创建一个聊天站点,并且我想创建一个 JavaScript 超链接,使发送按钮无法进行聊天。所以在我的聊天中,我可以通过 [url=http://www.site.com]text[/url] 创建超链接。但是 javascript 仍然适用于它们。代码是:javascript:document.getElementById("sendbutton").disabled = true; void(0)。所以我在我的地址栏中测试了这段代码,它成功地执行了命令并且它改变了页面。但是当我把它放在我的超链接上并单击它时,它会加载一个空白的白色页面,上面有“禁用”这个词。我做错了什么?为什么 void(0) 命令在我的地址栏中有效,但在放入超链接时无效?

4

2 回答 2

1

要防止锚标记执行其默认操作(更改文档位置),您必须取消其onclick事件,如下所示:

<a href="..." onclick="return false;">do it</a>

这样,无论href锚是什么,它都不会重定向页面。

但是,它也会取消您已经拥有的任何 JavaScript 代码,href因此您需要在onclick事件本身中执行所有这些代码:

<a href="#" onclick="document.getElementById('sendbutton').disabled = true; void(0); return false;">do it</a>

现场测试用例

于 2012-08-19T06:03:05.183 回答
0

您可以使用jQuery单击回调来完成此操作。

$("#sendbutton").click(function(event) {
  event.preventDefault(); // Should stop the page reloading.
}

请注意,通过false从这个回调返回相当于调用preventDefault()stopPropogation()

于 2012-08-19T06:00:07.353 回答