Проверка на стороне клиента в модальном всплывающем окне? - PullRequest
4 голосов
/ 01 октября 2010

У меня есть вид сетки / вид формы, отношения мастера / детали.

Когда я нажимаю кнопку в своем виде формы (шаблон элемента), я отображаю модальное всплывающее окно ajaxcontroltoolkit.

В этом всплывающем окне есть текстовое поле (на самом деле несколько). Я хочу проверить данные в этом текстовом поле (не менее шести цифр, пока я использую валидатор регулярных выражений) перед тем, как закрыть всплывающее окно.

Валидатор работает, но я все еще могу закрыть форму, нажав OK. Что я хотел бы сделать, так это отключить кнопку ОК во всплывающем окне, пока данные не будут хорошими.

Я пытался поиграться с некоторыми вещами в javascript, но я не смог заставить его работать, так как, похоже, есть некоторые проблемы с поиском элементов управления в просмотре формы.

Есть идеи?

Заранее спасибо.

1 Ответ

3 голосов
/ 01 октября 2010

Без обратной передачи

Вы должны быть в состоянии найти элемент управления, используя следующую технику в JavaScript:

$document.getElementById('<%=btnSubmitForm.ClientID%>').disabled = true;

Если вы используете RegularExpressionValidator, этот форум предлагает быстрый (хотя и хакерский) способ проверки и проверки правильности вашей формы без обратной передачи: http://forums.asp.net/t/1114240.aspx

с обратной передачей

Вы можете поместить кнопку Submit в ее собственную UpdatePanel, если ее еще нет, и включить / отключить ее в приведенном ниже коде, в зависимости от значения свойства IsValid валидатора.

Если вы не можете активировать функцию включения / выключения, вы можете просто оставить модальный режим открытым, чтобы пользователь не мог закрыть его, пока не введет действительные входные данные или не нажмет Отмена:

protected void BtnSubmitClick(object sender, EventArgs e)
{
    if (!regexValidator.IsValid)
    {
        modalPopupExtender.Show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...