防止重複提交與驗證控制元件配合使用
為了防止重複提交表單,一般情況下都是在點選按鈕後用javascript把提交按鈕設為disabled。在asp.net 下通常是使用OnClientClick來實現。
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><asp:TextBox ID="txt" runat="server">asp:TextBox>
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><asp:TextBox ID="txt" runat="server">asp:TextBox>
<asp:Button ID="btn" runat="server" Text="Button" onclick="btn_Click" OnClientClick="clientclick()" UseSubmitBehavior="false"/>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
$("#").attr("disabled",true);
}
</script>
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
function clientclick()
{
$("#").attr("disabled",true);
}
</script>
但是這種情況下如果使用了驗證控制元件,在驗證控制元件啟用的時候,按鈕同樣會被disabled掉,造成最後無法提交表單。
其實驗證控制元件啟用的時候就是控制對應span的顯示,我們可以用jquery的選擇器得到對應的span的數量,然後再把按鈕重新啟用就可以了。
我的解決辦法:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script type="text/javascript">
$(document).ready(function(){
$("#").click(function(){
var span=$("span[id*='Validator']:visible");
if(span.length>0)
{
$(this).attr("disabled",false);
}
});
});
function clientclick()
{
$("#").attr("disabled",true);
}
</script>
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><script type="text/javascript">
$(document).ready(function(){
$("#").click(function(){
var span=$("span[id*='Validator']:visible");
if(span.length>0)
{
$(this).attr("disabled",false);
}
});
});
function clientclick()
{
$("#").attr("disabled",true);
}
</script>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><asp:TextBox ID="txt" runat="server">asp:TextBox>
<asp:Button ID="btn" runat="server" Text="Button" onclick="btn_Click" OnClientClick="clientclick()" UseSubmitBehavior="false"/>
<asp:RequiredFieldValidator ID="Validator" runat="server"
ControlToValidate="txt" ErrorMessage="RequiredFieldValidator">asp:RequiredFieldValidator>
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><asp:TextBox ID="txt" runat="server">asp:TextBox>
<asp:Button ID="btn" runat="server" Text="Button" onclick="btn_Click" OnClientClick="clientclick()" UseSubmitBehavior="false"/>
<asp:RequiredFieldValidator ID="Validator" runat="server"
ControlToValidate="txt" ErrorMessage="RequiredFieldValidator">asp:RequiredFieldValidator>
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->protected void btn_Click(object sender, EventArgs e)
{
//do someing
}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->protected void btn_Click(object sender, EventArgs e)
{
//do someing
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-442648/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 前端防止使用者重複提交-js前端JS
- js 防止重複提交方案JS
- PHP防止使用者重複提交表單PHP
- 前端如何防止介面重複提交前端
- PHP 防止表單重複提交PHP
- 如何防止使用者重複提交訂單?(下)
- 如何防止使用者重複提交訂單?(上)
- 如何防止使用者重複提交訂單?(中)
- SpringBoot如何防止重複提交?- Adrian AdendrataSpring Boot
- Struts2防止表單重複提交
- 驗證碼機制之驗證碼重複使用
- Java使用Redis實現分散式鎖來防止重複提交問題JavaRedis分散式
- JavaWeb——驗證碼功能解決表單重複提交問題(使用谷歌驗證碼jar包為例)JavaWeb谷歌JAR
- PHP透過session判斷防止表單重複提交例項PHPSession
- 如何使POST請求具有冪等性防止重複提交 - mscharhag
- axios 重複提交iOS
- 分散式重複提交分散式
- 用jquery驗證使用者名稱是否有效或重複jQuery
- 簡訊提交驗證
- java 表單避免重複提交?Java
- jFinal避免表單重複提交
- WinForm MDIParent如何防止重複開啟ORM
- vue+elementUI 複雜表單的驗證、資料提交方案VueUI
- 如何避免表單的重複提交?
- Spring MVC表單防重複提交SpringMVC
- MQ 如何防止訊息重複入隊MQ
- 重複提交,你是如何處理的?
- MySQL防止重複插入相同記錄 insert if not existsMySql
- Html Form 驗證非同步的提交HTMLORM非同步
- Vue 配合eiement動態路由,許可權驗證Vue路由
- pbootcms提交留言、提交自定義表單時取消驗證碼boot
- iOS證書籤名機制&重簽名&防止重簽名iOS
- 對於防止按鈕重複點選的嘗試
- WEB安全新玩法 [8] 阻止訂單重複提交Web
- SpringMVC後臺token防重複提交解決方案SpringMVC
- Java Web防止使用者重複(同一使用者同時)登入實現方式JavaWeb
- K重交叉驗證和網格搜尋驗證
- JavaScript 點選回車驗證提交表單JavaScript
- 分散式重複提交問題架構設計思路分散式架構