由于异常代码和数据库连接,我有一个aspx页面需要花一些时间才能发布。那不是问题。我需要在用户单击它时禁用发布按钮。我要完成的第二件事是将按钮值更改为Please Wait...。要实现此目的,我正在使用settime out,以便在每1秒之后将一个圆点附加到它上面。但是,当我运行代码时,我得到InternalError:太多的递归?

请帮助我的代码如下。

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Submit" OnClientClick="return disable();" />


JS

var m = "Please Wait";

function disable() {
    try {
        $("input[type=submit]").attr("disabled", "disabled");
        setTimeout(showmsg(), 5000);
    } catch (e) {
        alert(e);
    }
    return true;
}

function showmsg() {
    if (m.length > 15) {
        m = "Please Wait";
    }
    m = m + ".";
    $("<%=Button1.ClientID %>").val(m);
    setTimeout(showmsg(), 1000);
}

最佳答案

您没有将showmsg作为函数传递,而是在执行它!
更换每一个

setTimeout(showmsg(),....)


setTimeout(showmsg,.....)

关于javascript - InternalError:太多的递归-进入jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19179257/

10-10 18:46