我正在做以下事情:
<a href="www.stackoverflow.com">
<button disabled="disabled" >ABC</button>
</a>
这工作得很好,但我得到一个HTML5验证错误,说“元素‘按钮’不能嵌套在元素‘按钮’。
谁能给我点建议,我该怎么做?
我正在做以下事情:
<a href="www.stackoverflow.com">
<button disabled="disabled" >ABC</button>
</a>
这工作得很好,但我得到一个HTML5验证错误,说“元素‘按钮’不能嵌套在元素‘按钮’。
谁能给我点建议,我该怎么做?
当前回答
不,根据W3C的HTML5 Spec Document,它不是有效的HTML5:
内容模型:透明,但不能有交互式内容后代。 a元素可以被包装在整个段落、列表、表格等等,甚至整个部分中,只要其中没有交互内容(例如按钮或其他链接)。
换句话说,你可以在<a>中嵌套任何元素,除了以下元素:
<一> <audio>(如果控件属性存在) < >按钮 <详细> <嵌入> < iframe > <img>(如果usemap属性存在) <input>(如果type属性不在隐藏状态) <注册机> <标识> <menu>(如果type属性处于工具栏状态) <object>(如果usemap属性存在) <选择> textarea > < <video>(如果控件属性存在)
如果你想要有一个链接到某处的按钮,将该按钮包装在<form>标签中,如下所示:
<form style="display: inline" action="http://example.com/" method="get">
<button>Visit Website</button>
</form>
然而,如果你的<button>标签使用CSS样式,看起来不像系统的小部件…帮你自己一个忙,为<a>标记创建一个新类,并以同样的方式设置它的样式。
其他回答
不,根据W3C的HTML5 Spec Document,它不是有效的HTML5:
内容模型:透明,但不能有交互式内容后代。 a元素可以被包装在整个段落、列表、表格等等,甚至整个部分中,只要其中没有交互内容(例如按钮或其他链接)。
换句话说,你可以在<a>中嵌套任何元素,除了以下元素:
<一> <audio>(如果控件属性存在) < >按钮 <详细> <嵌入> < iframe > <img>(如果usemap属性存在) <input>(如果type属性不在隐藏状态) <注册机> <标识> <menu>(如果type属性处于工具栏状态) <object>(如果usemap属性存在) <选择> textarea > < <video>(如果控件属性存在)
如果你想要有一个链接到某处的按钮,将该按钮包装在<form>标签中,如下所示:
<form style="display: inline" action="http://example.com/" method="get">
<button>Visit Website</button>
</form>
然而,如果你的<button>标签使用CSS样式,看起来不像系统的小部件…帮你自己一个忙,为<a>标记创建一个新类,并以同样的方式设置它的样式。
如果它是有效的,那就太奇怪了,我认为它是无效的。将一个可点击元素置于另一个可点击元素之中意味着什么?是按钮,还是链接?
在按钮内使用formaction属性
PS !只有当你的按钮类型="submit"时它才有效
<button type="submit" formaction="www.youraddress.com">Submit</button>
说明及工作方案: 如何:div与onclick在另一个div与onclick javascript
通过在你的内部点击处理程序中执行这个脚本:
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
为什么不..你也可以嵌入图片上的按钮以及
<FORM method = "POST" action = "https://stackoverflow.com">
<button type="submit" name="Submit">
<img src="img/Att_hack.png" alt="Text">
</button>
</FORM>