我正在做以下事情:
<a href="www.stackoverflow.com">
<button disabled="disabled" >ABC</button>
</a>
这很好但我得到一个HTML5验证错误,说“元素'按钮'不能嵌套在元素'按钮'中。
有人可以就我应该做什么给我建议吗?
答案 0 :(得分:194)
否,根据HTML5 Spec Document from W3C,它无效HTML5:
内容模型: Transparent,但必须没有interactive content后代。
只要内部没有交互式内容(例如按钮或其他链接),a元素可以包裹整个段落,列表,表格等,甚至整个部分。
换句话说,除了以下内容之外,您可以将任何元素嵌套在<a>
中:
<a>
<audio>
(如果控件属性存在)
<button>
<details>
<embed>
<iframe>
<img>
(如果 usemap 属性存在)
<input>
(如果类型属性不在隐藏状态中)
<keygen>
<label>
<menu>
(如果类型属性位于工具栏状态)
<object>
(如果 usemap 属性存在)
<select>
<textarea>
<video>
(如果控件属性存在)
如果您尝试使用链接到某处的按钮,请将该按钮包含在<form>
标记内:
<form style="display: inline" action="http://example.com/" method="get">
<button>Visit Website</button>
</form>
但是,如果您的<button>
标记使用CSS设置样式并且看起来不像系统的小部件...帮自己一个忙,为<a>
标记创建一个新类并将其设置为样式同样的方式。
答案 1 :(得分:37)
如果您使用的是 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>
答案 2 :(得分:9)
我刚刚跳到同样的问题,我解决了它将'button'标签替换为'span'标签。在我的情况下,我正在使用bootstrap。这就是它的样子:
<a href="#register">
<span class="btn btn-default btn-lg">
Subscribe
</span>
</a>
答案 3 :(得分:8)
没有
以下解决方案依赖于JavaScript。
<button type="button" onclick="location.href='http://www.stackoverflow.com'">ABC</button>
如果要将按钮放在具有<form>
的现有method="post"
内,请确保按钮具有属性type="button"
,否则该按钮将提交POST操作。通过这种方式,您可以拥有一个包含GET和POST操作按钮混合的<form>
。
答案 4 :(得分:7)
如果这是有效的,那将是非常奇怪的,我希望它是无效的。在另一个可点击元素中有一个可点击元素应该是什么意思?它是什么 - 按钮或链接?
答案 5 :(得分:3)
另一个选择是使用按钮的onclick属性:
<button disabled="disabled" onClick="location.href='www.stackoverflow.com'" >ABC</button>
但是,如果它位于元素内部,用户将看不到悬停时显示的链接。
答案 6 :(得分:2)
现在,即使规范不允许,“似乎”仍然可以将按钮嵌入<a href...><button ...></a>
标签中,FWIW ...
答案 7 :(得分:0)
您可以在按钮中添加一个类,并将一些脚本重定向到它。
我是这样做的:
<ion-view view-title="News">
<ion-content class="padding">
Hello world!
</ion-content>
</ion-view>
答案 8 :(得分:0)
为什么不..你也可以在按钮上嵌入图片
<FORM method = "POST" action = "https://stackoverflow.com">
<button type="submit" name="Submit">
<img src="img/Att_hack.png" alt="Text">
</button>
</FORM>
答案 9 :(得分:0)
这里的解释和工作解决方案: Howto: div with onclick inside another div with onclick javascript
在内部点击处理程序中执行此脚本:
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
答案 10 :(得分:-1)
在HTML5中将链接元素嵌入链接中是违法的。
最好在默认情况下使用CSS :(活动(按下)状态:
body{background-color:#F0F0F0} /* JUST TO MAKE THE BORDER STAND OUT */
a.Button{padding:.1em .4em;color:#0000D0;background-color:#E0E0E0;font:normal 80% sans-serif;font-weight:700;border:2px #606060 solid;text-decoration:none}
a.Button:not(:active){border-left-color:#FFFFFF;border-top-color:#FFFFFF}
a.Button:active{border-right-color:#FFFFFF;border-bottom-color:#FFFFFF}
&#13;
<p><a class="Button" href="www.stackoverflow.com">Click me<a>
&#13;
答案 11 :(得分:-1)
我尝试使用javascript解决方案但是,为了工作,我需要在我的javascript函数中插入e.preventDefault();
。
<!-- Add your HTML !-->
<a id="id_primary_link" href="my_primary_link.php">
<button onclick="my_trick_function('my_secondary_link.php')">
</a>
<!-- Add your javascript function !-->
<script>
function my_trick_function(secondary_link){
$('#id_primary_link').click(function(e) {
e.preventDefault();
window.location.replace(secondary_link);
});
}
</script>
答案 12 :(得分:-3)
在按钮
中使用formction属性PS!它仅适用于您的按钮类型=“提交”
<button type="submit" formaction="www.youraddress.com">Submit</button>
答案 13 :(得分:-3)
<a href="index.html">
<button type="button">Submit</button>
</a>
&#13;
<button type="submit" onclick="myFunction()">Submit</button>
<script>
function myFunction() {
var w = window.open(file:///E:/Aditya%20panchal/index.html);
}
</script>
&#13;