0

在 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 的一种解决方法是给按钮一个点击事件并以这种方式导航。另一种解决方案是用按钮的图像替换按钮。

但是有没有更简洁的解决方案?

4

2 回答 2

2

在元素<input>内嵌套(或任何表单控件)是无效的 HTML 。<a>

如果你想要一个链接。使用链接并且仅使用链接。如果您希望它看起来像一个按钮,请使用 CSS。

于 2013-02-19T09:31:11.393 回答
2

使用 jQuery 的快速解决方案:

$("a > button").on('click', function() { 
    location.href = $(this).closest("a").attr("href");
}); // fixed

更多关于这个主题

w3c 对链接标签内的按钮没有问题,所以它只是另一个 MS 子标准。

要获得您正在寻找的效果,您可以放弃<a>标签并为每个按钮添加一个简单的事件处理程序,以将浏览器导航到所需位置。

然而; 常规链接可以正常工作是有原因的:

  • 用户可以立即识别链接,并了解他们导航到其他页面
  • 搜索引擎可以将它们识别为链接并关注它们
  • 屏幕阅读器可以将它们识别为链接并适当地建议用户
  • 您还添加了一个完全不必要的要求,即启用 JavaScript 只是为了执行基本导航;这是网络的一个基本方面,我认为这种依赖是不可接受的。

如果需要,您可以使用背景图像或背景颜色、边框和其他 css 技术来设置链接的样式,使它们看起来像按钮,但实际上它们应该是普通链接。

更多的?

锚链接内的按钮在 Firefox 中有效,但在 Internet Explorer 中无效?

于 2013-02-19T09:36:37.897 回答