2013-10-04 71 views
0

我有一個aspx頁面,需要時間來發布由於toomany代碼和db連接。這不是問題。當用戶點擊它時,我需要禁用帖子按鈕,這是我能夠做到的。我想完成的第二件事是將按鈕值更改爲Please Wait ....要完成此操作,我正在使用settime,以便每隔1秒後將一個點附加到它上面。但是當我運行代碼時,我得到InternalError:太多的遞歸?InternalError:太多的遞歸 - 進入jquery

請幫忙我的代碼如下。

<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)作爲參數,而不是函數的返回值(除非返回值是函數) – techfoobar

+0

是的是的我得到它感謝您的快速回復。 – Ratna

回答

1

你是不是傳遞showmsg的功能,但你正在執行它! 更換每

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

的setTimeout(showmsg,......)

1

試試這個

setTimeout(showmsg, 5000); 

,讓我知道