我正在做以下事情:

 <a href="www.stackoverflow.com">
   <button disabled="disabled" >ABC</button>
 </a>  

这工作得很好,但我得到一个HTML5验证错误,说“元素‘按钮’不能嵌套在元素‘按钮’。

谁能给我点建议,我该怎么做?


当前回答

说明及工作方案: 如何:div与onclick在另一个div与onclick javascript

通过在你的内部点击处理程序中执行这个脚本:

 if (!e) var e = window.event;
 e.cancelBubble = true;
 if (e.stopPropagation) e.stopPropagation();

其他回答

No.

下面的解决方案依赖于JavaScript。

<button type="button" onclick="location.href='http://www.stackoverflow.com'">ABC</button>

如果按钮被放置在一个已有的<form>中,method="post",那么确保按钮有属性type="button",否则按钮将提交post操作。通过这种方式,您可以有一个包含GET和POST操作按钮混合的<form>。

您可以向按钮添加一个类,并放置一些重定向脚本。

我是这样做的:

<button class='buttonClass'>button name</button>

<script>
$(".buttonClass').click(function(){
window.location.href = "http://stackoverflow.com";
});
</script>

如果它是有效的,那就太奇怪了,我认为它是无效的。将一个可点击元素置于另一个可点击元素之中意味着什么?是按钮,还是链接?

我刚刚跳进了同样的问题,我解决了它将“按钮”标签替换为“跨度”标签。在我的例子中,我使用的是自举。这是它的样子:

<a href="#register"> 
    <span class="btn btn-default btn-lg">
        Subscribe
    </span>
</a> 

如果你正在使用Bootstrap 3,这工作得很好

<a href="#" class="btn btn-primary btn-lg active" role="button">Primary link</a>
<a href="#" class="btn btn-default btn-lg active" role="button">Link</a>