我有一些代碼,我需要一個控制兩個獨立的必填字段驗證,無論是在單獨的驗證組,然後由兩個獨立的按鈕驗證。我如何關閉ASP.NET所需的字段校驗「失去焦點」的行爲
這種方法效果很好被點擊的按鈕時,但兩者的驗證表明,如果我在文本框中輸入一個值,然後將其刪除。
有沒有辦法將此「失焦」驗證關閉?我只需要它來驗證點擊按鈕的時間。
編輯
不幸的是,如果我設置EnableClientScript = false,那麼我沒有任何客戶通知。我想要的是動態錯誤消息顯示(有效地在按鈕的OnClientClick事件中),而不是文本框的「丟失焦點」。
有什麼方法可以禁用或「解除」lostfocus客戶端事件?
編輯
組合dDejan的回答和womp的ANSWEER here排序的問題完美。
我的最終代碼看起來像這樣(爲別人有類似的情況)......
的Javascript ...
<script type="text/javascript">
$(document).ready(function() {
$('body').fadeIn(500);
//Turn off all validation = its switched on dynamically
$.each(Page_Validators, function(index, validator) {
ValidatorEnable(validator, false);
});
});
function ToggleValidators(GroupName) {
$.each(Page_Validators, function(index, validator) {
if (validator.validationGroup == GroupName) {
ValidatorEnable(validator, true);
} else {
ValidatorEnable(validator, false);
}
});
}
</script>
ASPX控制示例...
<telerik:RadTextBox Width="196px" ID="txtFirstName" runat="server" MaxLength="50" Skin="Black"></telerik:RadTextBox>
<asp:RequiredFieldValidator ID="valFirstName" CssClass="Validator" runat="server" EnableClientScript="true" Display="Dynamic" ErrorMessage="You must enter your first name." ControlToValidate="txtFirstName" ValidationGroup="NeededForEmail"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" CssClass="Validator" runat="server" EnableClientScript="true" Display="Dynamic" ErrorMessage="You must enter your first name." ControlToValidate="txtFirstName" ValidationGroup="NeededForSubmit"></asp:RequiredFieldValidator>
ASPX按鈕代碼...
<asp:Button ID="btnGetConfCode" runat="server" Text="Get Confirmation Code" OnClientClick="ToggleValidators('NeededForEmail')" OnClick="btnGetConfCode_Click" Width="100%" ValidationGroup="NeededForEmail"/>
<asp:Button ID="btnRegisterUser" runat="server" Text="Register" OnClientClick="ToggleValidators('NeededForSubmit')" OnClick="btnRegisterUser_Click" Width="100px" ValidationGroup="NeededForSubmit" />
因此,直到用戶單擊「獲取電子郵件確認碼」按鈕或「註冊」按鈕時,纔會進行驗證。
如果他們點擊「獲取郵件驗證碼」按鈕,所有的控件從文本框中驗證除了當用戶輸入電子郵件驗證碼,我們只看到一個驗證信息。
如果他們點擊「註冊」按鈕,然後所有的控件的驗證和我們只看到一個驗證消息。
如果按下其中一個按鈕,用戶可以追溯到,添加,然後刪除一些文本,然後我們只看到一個驗證。在此更改之前,您曾經看到兩條消息都說同一件事。
感謝您的幫助球員
我知道這可能是舊的,但一旦驗證已被激活的onsubmit,你怎麼再關閉焦點,從而使錯誤信息消失,直到再次點擊提交按鈕? – SollyM 2015-07-03 10:15:31