我曾經在一個ASP.Net web表單以下按鈕:提交按鈕的onclick JavaScript的渲染從asp.net 2.0 diffrences至4.0
<asp:Button id="btn_submit" text="Submit (Click only Once)" OnClick="process_form" runat="server" />
在頁面代碼中,我所使用 以下函數禁用多次提交(這工作得很好ASP.Net 2.0下)...
private sub prevent_multiple_submits()
dim sb as StringBuilder
sb = New StringBuilder()
sb.Append("this.value = 'Please wait...';this.disabled = true;")
sb.Append(Page.ClientScript.GetPostBackEventReference(btn_submit, String.Empty))
btn_submit.Attributes.Add("onclick", sb.ToString())
end sub
當頁面ASP.Net 2.0呈現的HTML如下(工作得很好)下運行...
<input type="submit" name="btn_submit" value="Submit (Click only Once)" onclick="this.value = 'Please wait...';this.disabled = true;__doPostBack('btn_submit','');" id="btn_submit" />
當頁面ASP.Net 4.0下運行呈現的HTML如下:
<input type="submit" name="btn_submit" value="Submit (Click only Once)" onclick="this.value = 'Please wait...';this.disabled = true;__doPostBack('btn_submit','');" language="javascript" id="btn_submit" />
...出於某種原因,就像它在按鈕上都不顯示爲殘疾...( ASP.Net 2.0)...
該表單仍然提交和一切正常 - 但按鈕從未出現點擊後禁用?!
是否有其他人處理過這種行爲? ..如果是這樣,你有沒有發現,而不訴諸改變web.config中,使用JQuery解決方案等
BTW,
我發現下面的參考;但在ASP.Net 4.0下沒有任何工作可以幫助我。
ASP.NET, javascript: silly annoying apostrophe problem
HTMLEncode/HTMLDecode and the apostrophe ASP.net
我想這個問題應該是如何添加一個轉義JavaScript代碼來一個asp.net按鈕?
在此先感謝
嗨傑森 - 謝謝你花時間回答。我嘗試使用上面的「onClientClick」代碼進行測試 - 不幸的是,它不起作用 - 問題是提交按鈕被禁用,並且「process_form」從未被執行。我寧願一個ASP.Net唯一的解決方案,而不是不得不求助於JQuery – bdcoder
有沒有人使用ASP.Net 4.0做到了這一點?它甚至有可能不使用JQuery? – bdcoder
@ user1377587我給出的前兩個解決方案不使用jQuery。所以這是一個不同的問題,禁用按鈕會導致表單不提交。經過一些研究,我不確定你的解決方案過去是如何工作的(也許這是2.0和4.0之間的另一個區別)。您可以隱藏該按鈕並在文本上添加一個「Please wait」。我已編輯添加該解決方案。 –