如何禁用网页上的所有href?可以用javascript完成吗?

时间:2014-05-28 02:38:22

标签: javascript php jquery html

我正在开发一个系统,它会强制会员先填写他们的详细信息,然后才能查看该网站的其他页面。但我不知道如何禁用所有href链接,用户只能按下提交按钮继续。我无法找到如何在1次禁用所有,我只发现禁用href 1 by 1 by id他们需要点击其中一个提交按钮。但我想要的是当用户在特定页面和数据库status = 1上时它会被禁用,同时href将在status = 2时启用。

这是profile-page-update.html中的提交按钮:

 <input type="submit" name="submit" onclick="xajax_editprofile(xajax.getFormValues('updateuser')); return false;" style="width:1px; visibility:hidden;">
<a href="#" onclick="xajax_editprofile(xajax.getFormValues('updateuser')); return false;">Save</a></div>

这是我需要禁用的所有链接:

    <div class="nav">
        <ul>
            <li style="margin-left:20px"><a href="index.php">HOME</a></li>
            <li><a href="news-listing.php">NEWS</a></li>
            <li><a>EVENTS</a>
                <ul>
                    <li><a href="event-listing.php?id=1">UPCOMING EVENTS</a></li>
                    <li><a href="event-listing.php?id=2">PAST EVENTS</a></li>
                </ul>
            </li>
            <{if !$login}>
            <li><a class="open-popup-link" href="#test-popup">COMMUNITY</a></li>
            <{else}>
            <li><a href="community-listing.php">COMMUNITY</a></li>
            <{/if}>
            <li><a href="alumni-listing.php">ALUMNI LISTING</a></li>
        </ul>
    </div>

这是我在互联网上找到的一些代码:

<input type="button" value="Open Drop Down" onclick="disableLinks()" />

function disableLinks() {

var links = document.getElementsByTagName('a');

for (var i = 0; i < links.length; i++) {

var link = links[i];

link.removeAttribute('href');

}

3 个答案:

答案 0 :(得分:2)

从技术上讲,您可以使用不使用jQuery的getElementsByName或使用jQuery <a>遍历所有$("tagName")元素来禁用链接。

但我认为这不是你需要的。

如果你的意图是:

  • 要隐藏链接以防止用户转到表单目标以外的任何地方,只需创建一个只包含表单,其提交按钮以及其他内容的页面,尤其是没有链接。

    如果您只是通过JavaScript播放网页链接,任何人都可以查看网页来源并恢复链接,以便绕过表单并导航到特定网页。

  • 要阻止用户访问网站上的任何其他内容(或访问某些受限资源),请使用服务器端安全检查,如果用户无权访问资源,则使用自动重定向。如果您正在使用框架,很可能该功能已经实现并用于区分经过身份验证的用户和来宾:经过身份验证的用户将能够访问特定资源,而访客将被框架重定向到日志 - 页面。

    如果您只是隐藏页面上的链接,但不要在服务器端对&#34;受保护的&#34;进行任何安全检查。页面,任何已经使用过该网站的人(或者知道有人做过的人)都会知道要输入的确切链接,再次绕过该表单。

答案 1 :(得分:1)

使用jQuery这将在页面加载后禁用所有<a>

$(function(){

   $("a").on("click", function(){return false;});

})

你只需要在下面运行再次启用它们

 $("a").off("click");

Demo

答案 2 :(得分:0)

您可以使用jQuery来阻止Click事件的默认事件侦听器,同时希望禁用链接,然后在允许用户再次导航时解除绑定。

//remove click ability
$("a").click(function(e){e.preventDefault()});
//reset
$("a").unbind('click');

如果你有一些点击监听器,你需要一些其他的工作,你想在某些链接上保持活跃等。