【问题标题】:InternalError: too much recursion - getting in jqueryInternalError:递归过多 - 进入 jquery
【发布时间】:2013-10-11 08:03:39
【问题描述】:

由于代码和数据库连接过多,我有一个 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);
}

【问题讨论】:

  • 应该是 setTimeout(showmsg, 1000); 而不是 setTimeout(showmsg(), 1000); - setTimeout() 期望一个函数(或字符串中的 JS)作为参数,而不是函数返回值(除非返回值是一个函数)
  • 是的,我知道了,感谢您的快速回复。

标签: javascript jquery asp.net


【解决方案1】:

试试这个

setTimeout(showmsg, 5000);

告诉我

【讨论】:

    【解决方案2】:

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

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

    setTimeout(showmsg,.....)

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多