Javascript 单击后禁用超链接

Javascript 单击后禁用超链接,javascript,hyperlink,Javascript,Hyperlink,我有一个经典的ASP表单,其中有一个超链接,如下所示。 如果验证为true,ProcessForm()将表单提交到另一个页面 function ProcessForm() { if (validateform() == true) { document.form1.action = "abc.asp"; document.form1.submit(); } 如果验证为真,我如何在单击一次后禁用超链接?尝试为超链接添加id并将其禁用,然后文本变灰,但单击变灰的文本时,页

我有一个经典的ASP表单,其中有一个超链接,如下所示。

如果验证为true,ProcessForm()将表单提交到另一个页面

function ProcessForm() {
    if (validateform() == true) {
    document.form1.action = "abc.asp";
    document.form1.submit();
}
如果验证为真,我如何在单击一次后禁用超链接?尝试为超链接添加id并将其禁用,然后文本变灰,但单击变灰的文本时,页面会被提交多次。还尝试了return false onclick。 请建议。

设置一个全局标志:

var hasSubmittedForm = false;
然后检查该标志:

function ProcessForm() {
    if (hasSubmittedForm) return false;
    else hasSubmittedForm = true;

    if (validateform() == true) {
        document.form1.action = "abc.asp";
        document.form1.submit();
    }
}

您可以使用jQuery进行如下操作:

给你:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function($){
    $("#RemoveLink").click(function() {
    var url = $(this).attr('href');
    window.open(url);
    $("#RemoveLink").removeAttr("href");
    });
});
</script>

<a href="http://www.google.bg/" id="RemoveLink">go here</a>

$(文档).ready(函数($){
$(“#RemoveLink”)。单击(函数(){
var url=$(this.attr('href');
窗口打开(url);
$(“#RemoveLink”).removeAttr(“href”);
});
});

经过测试并正常工作,如果这不是您想要的功能,请告诉我,或者将我的答案标记为您问题的答案;)

在链接中添加onclick事件:

<form name="form1" method="post" action="">
    <a href="" onclick="ProcessForm(this);">go here</a>
</form>

<script type="text/javascript>
    function validateform() {
        return true;
    }

    function ProcessForm(link) {
        if (validateform() == true) {
            link.removeAttribute('href');
            document.form1.action = 'abc.asp';
            document.form1.submit();
        }
    }
</script>


在流程调用之后,您是否尝试删除链接而不是禁用它<代码>$('#link_id').attr('href',''):谢谢你的回复。已尝试此操作。但它仅在验证为真时才起作用,而且在多次单击的情况下,即使它只创建了一条记录,也会显示一个只有“false”的页面。验证失败时,将禁用链接,用户无法再次单击该链接。在这里,如果处理成功,页面abc.asp将调用页面xyz.asp。请suggest@Tonny斯泰克:谢谢你的回复。但是这里ahref调用的是一个js函数,而不是打开一个新的页面,请您包含验证失败时要处理的代码,它应该允许用户再次单击。@SoftCrearR:谢谢您的回复。此代码没有使表单提交。它只是停留在那里。