单击后禁用超链接

时间:2014-08-06 21:43:51

标签: javascript hyperlink

我有经典的ASP表单,因为有一个如下的超链接。         <A href="javascript:ProcessForm()" >go here</A>

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

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

如果验证为真,如何在单击后禁用超链接?尝试为超链接添加一个id并禁用它,然后文本变灰,但点击灰色文本后,页面会多次提交。还尝试了返回false onclick。 请建议。

3 个答案:

答案 0 :(得分:0)

设置全局标记:

var hasSubmittedForm = false;

然后检查那个标志:

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

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

答案 1 :(得分:0)

在链接中添加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>

答案 2 :(得分:-1)

你可以像这样使用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>

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