0

由于代码和数据库连接过多,我有一个 aspx 页面需要时间来发布。那不是问题。当用户单击我可以执行的操作时,我需要禁用发布按钮。我要完成的第二件事是将按钮值更改为 Please Wait ...。为此,我使用 settime out 以便每 1 秒后附加一个点。但是当我运行代码时,我得到 InternalError: too much recursion?

请帮助我的代码如下。

<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);
}
4

2 回答 2

1

尝试这个

setTimeout(showmsg, 5000);

让我知道

于 2013-10-04T11:54:55.673 回答
1

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

setTimeout( showmsg() ,....) 到

设置超时(showmsg,.....)

于 2013-10-04T12:48:26.083 回答