У меня есть код, где мне нужно два отдельных обязательных поля для одного элемента управления, как в отдельных группах проверки, которые затем проверяются двумя отдельными кнопками.
Этот подход хорошо работает, когда кнопки нажимаются, но оба проверяющих проверяют, вводя значение в текстовое поле, а затем удаляю его.
Есть ли способ отключить проверку "потерянного фокуса"? Мне нужно только это, чтобы проверить, когда нажимаются кнопки.
ИЗМЕНИТЬ
К сожалению, если я устанавливаю EnableClientScript = false, то у меня нет клиентских уведомлений. Я хочу, чтобы динамическое сообщение об ошибке отображалось (эффектно в событии OnClientClick кнопки), но не "потерянный фокус" текстового поля.
Есть ли способ отключить или "отцепить" событие клиента lostfocus?
ИЗМЕНИТЬ
Комбинация dDejan answer и womp answeer здесь отлично отсортировала проблему.
Мой последний код выглядит так (для кого-то другого с аналогичной ситуацией)...
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" />
Итак, теперь нет подтверждения, пока пользователь не нажмет кнопку "Получить код подтверждения электронной почты" или кнопку "Регистрация".
Если они нажимают кнопку "Получить код подтверждения электронной почты", все элементы управления проверяют отдельно от текстового поля, в котором пользователь должен ввести код проверки электронной почты, и мы видим только одно сообщение проверки.
Если они нажимают кнопку "Регистрация", тогда все элементы управления проверяют, и мы видим только одно сообщение проверки.
Если нажата любая из кнопок, пользователь возвращается, добавляет и затем удаляет какой-то текст, тогда мы видим только один валидатор. Перед этим изменением вы использовали, чтобы оба сообщения говорили одно и то же.
Благодарим вас за помощь ребятам