При отправке формы проверьте значение, которое, если оно присутствует, открывает модальное окно для получения дополнительной информации. - PullRequest
0 голосов
/ 12 августа 2011

У меня есть форма, которая использует JQuery Validate.Вы нажимаете кнопку «Отправить», форма проверяется и отправляется через ajax.Я хочу добавить шаг к этому процессу.

Я хочу проверить наличие значения, скажем, x.Если х не в форме, я хочу продолжить и отправить его, как я уже делаю.Если это в форме, я хочу открыть модальное окно, которое запрашивает дополнительную информацию, ТОГДА отправляет форму с этой дополнительной информацией, добавленной в запрос.

В настоящее время я могу получить модальный триггер, но затем форма просто продолжаетс подачи. Как мне сделать так, чтобы отправка формы приостанавливалась, пока модал обрабатывается пользователем?

В jQuery Validate есть опция «success», которая вызывается после успешной проверки (когдаЯ хочу проверить, запускает ли модальное), но это все равно не приостанавливает выполнение.

В двух словах: как проверить отправленную форму, проверьте, присутствует ли значение x, если его нетпредставить отправьте форму, но если она присутствует, приостановите отправку, откройте модальное окно, позвольте пользователю заполнить еще некоторые данные (и предположительно нажмите кнопку «сделано» или «отменить» какого-либо рода), добавьте это к собранномуФорма данных, а затем отправить лот?Приостановка части представления ставит меня в тупик.

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Подключите функцию отправки формы:

$('form').submit(function() {
   if (x !== undefined) {
       $('#dialog').show();
       return false;
   }
});
1 голос
/ 12 августа 2011

Используйте submit() в первой форме ...

$('#form1').submit(function() {
    // The below validation goes in here
});

Подтвердите его ...

$("#form1").validate({
    // Whatever rules you want to validate by   
});

Проверьте правильность формы ...

if($('#form1').valid()) {
    // Branching on x, example below, will go in here
} else {
    // It's not valid, stop the submission
    return false;
}

Ветвь на х.Если есть, откройте модальное окно, если не вернете true, чтобы отправить форму как есть

if (x !== undefined) {
    // Here is where you also need to pass the other form data to the modal
    // append hidden text fields to the form and populate with the values 
    // Open your modal window, then stop the default submit process
    $('#themodalwindow').openModal();
    return false;
} else {
    // No x so submit the form as is
    return true;
}

Теперь вам нужно отправить форму в модальном виде:добавьте данные, собранные в форме от формы 1 до формы 2, затем отправка формы будет включать в себя все, что вам нужно.Кстати, вы можете кешировать некоторые вещи в этом, но это суть этого.

1 голос
/ 12 августа 2011

Вы не можете приостановить отправку формы, но вы можете отменить ее, если вы вернете false в событии отправки формы. После того, как вы получите дополнительные данные из модального окна, просто добавьте данные в форму и повторно отправьте их через javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...