尽管该链接被禁用,但它仍然是可点击的。

<a href="/" disabled="disabled">123n</a>

如果它是禁用的,我可以使它不可点击吗?我应该使用JavaScript吗?


当前回答

我看到这里已经贴出了大量的答案,但我不认为有任何明确的答案可以将前面提到的方法结合到我发现的有效方法中。这是为了使链接既显示为禁用,也不会将用户重定向到另一个页面。

这个答案假设你正在使用jquery和bootstrap,并使用另一个属性临时存储href属性,而禁用。

//situation where link enable/disable should be toggled
function toggle_links(enable) {
    if (enable) {
        $('.toggle-link')
        .removeClass('disabled')
        .prop('href', $(this).attr('data-href'))
    }
    else {
        $('.toggle-link')
        .addClass('disabled')
        .prop('data-href', $(this).prop('href'))
        .prop('href','#')
    }
a.disabled {
  cursor: default;
}

其他回答

如果你需要用Javascript禁用laravel上的链接,这是我的解决方案:

链接(blade.php):

<a href='/link/to/path' class='btn btn-primary mt-3' onclick='disableLink(this)'>Confirmar</a>

. css文件

.isDisabled {
    cursor: not-allowed;
    opacity: 0.5;
}

a[aria-disabled="true"] {
    color: currentColor;
    display: inline-block; /* For IE11/ MS Edge bug */
    pointer-events: none;
    text-decoration: none;
}

.js文件

function disableLink(link) {
    // 1. Add isDisabled class to parent element
    link.parentElement.classList.add('isDisabled');
    // 2. Store href so we can add it later
    link.setAttribute('data-href', link.href);
    // 3. Set aria-disabled to 'true'
    link.setAttribute('aria-disabled', 'true');
}

function enableLink(link) {
    // 1. Remove 'isDisabled' class from parent span
    link.parentElement.classList.remove('isDisabled');
    // 2. Set href
    link.href = link.getAttribute('data-href');
    // 3. Remove 'aria-disabled', better than setting to false
    link.removeAttribute('aria-disabled');
}

参考:https://css-tricks.com/how-to-disable-links/

正确使用按钮和链接。

•按钮激活网页上的脚本功能(对话框,展开/折叠区域)。

•链接带你到另一个位置,无论是到不同的页面或同一页面上的不同位置。

如果你遵循这些规则,就不会出现任何需要禁用链接的情况。即使你让一个链接看起来视觉残疾和空白点击

<a href=“” ng-click=“Ctrl._isLinkActive &&$ctrl.gotoMyAwesomePage()”

你不会考虑可访问性,屏幕阅读器会将其视为链接,视力受损的人会一直好奇为什么链接不起作用。

当您将鼠标移到href标签上时,href标签中的任何内容都将显示在浏览器窗口的左下角。

我个人认为像javascript:void(0)这样的东西显示给用户是可怕的。

相反,关闭href,使用jQuery/其他工具,添加一个样式规则(如果你仍然需要它看起来像一个链接):

a {
    cursor:pointer;
}

我们不能直接禁用它,但我们可以这样做:

添加类型=“按钮”。 删除href=""属性。 添加disabled属性,这样它就会显示通过更改游标而禁用游标并使游标变暗。

PHP的例子:

<?php
if($status=="Approved"){ 
?>
  <a type="button" class="btn btn-primary btn-xs" disabled> EDIT
     </a>
  <?php    
}else{
?>
  <a href="index.php" class="btn btn-primary btn-xs"> EDIT
    </a>
  <?php    
}
?>

在我的情况下,我使用

<a href="/" onClick={e => e.preventDefault()}>