在ie9中,此代码有效;
<span id="ForwardNavigationEnabled" style="display:inline;">
<a class="imagelink" href="@Url.Action("Details", "Subcontractor", new { id = Model.Navigator.NextPageId })">
<input id="btnNext" type="button" value="Next >|" />
</a>
<a class="imagelink" href="@Url.Action("Details", "Subcontractor", new { id = Model.Navigator.LastPageId })">
<input id="btnLast" type="button" value="Last >>|" />
</a>
</span>
也就是说,当您单击按钮时,会触发超链接中的href事件。 在ie8中,超链接被忽略,而按钮的点击事件则被触发,而不是任何地方。
ie8的一个修复是给按钮一个点击事件并以这种方式导航。另一个解决方案是用按钮图像替换按钮。
但是有更简洁的解决方案吗?
答案 0 :(得分:2)
将<input>
(或任何表单控件)嵌套在<a>
元素中是无效的HTML。
如果你想要一个链接。使用链接,只链接。如果您希望它看起来像一个按钮,请使用CSS。
答案 1 :(得分:2)
$("a > button").on('click', function() {
location.href = $(this).closest("a").attr("href");
}); // fixed
w3c链接标签内的按钮没有问题,所以它只是另一个MS子标准。
要获得您正在寻找的效果,您可以放弃<a>
标记,并为每个按钮添加一个简单的事件处理程序,以便将浏览器导航到所需的位置。
然而;常规链接的工作原理是这样的:
如果需要,您可以使用背景图片或背景颜色,边框和其他CSS技术设置链接的样式,使它们看起来像按钮,但在封面下,它们应该是普通的链接。
Button inside of anchor link works in Firefox but not in Internet Explorer?