Javascript void(0)无效

时间:2012-08-19 05:55:12

标签: javascript

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

2 个答案:

答案 0 :(得分:1)

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

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

这种方式无论锚的href是什么,都不会重定向页面。

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

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

Live test case

答案 1 :(得分:0)

您可以使用 jQuery 点击回调来执行此操作。

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

请注意,从此回调中返回false相当于调用preventDefault()stopPropogation()