InternalError: слишком много рекурсии - попадание в jquery

0

У меня есть страница aspx, которая занимает много времени, чтобы отправлять сообщения из-за кодов toomany и соединения db. Это не проблема. Мне нужно отключить кнопку сообщения, когда пользователь нажимает на нее, что я могу сделать. Вторая вещь, которую я хочу выполнить, - это изменить значение кнопки для "Пожалуйста, подождите...". Для этого я использую настройку, чтобы через каждые 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);
}
  • 1
    Это должно быть setTimeout(showmsg, 1000); и не setTimeout(showmsg(), 1000); - setTimeout() ожидает функцию (или JS в строке) в качестве аргумента, а не возвращаемое значение функции (если только возвращаемое значение не является функцией)
  • 0
    Да, да, я получил это спасибо за быстрый ответ.

2 ответа

1
Лучший ответ

Вы не передаете showmsg как функцию, но выполняете его! Заменить все

setTimeout (showmsg() ,....) to

setTimeout (showmsg ,.....)

1

Попробуй это

setTimeout(showmsg, 5000);

и дайте мне знать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню