2009-09-20 6 views
1

У меня есть форма, которую пользователи могут отправлять информацию. Представление может быть успешным или не выполнено.jQuery UI Диалоговое окно после формы submit

В любом случае, я хочу, чтобы диалоговое окно указывало пользователю, было ли оно успешным или нет.
Страница загружается сама по форме отправки. Ergo, страница не отправляется через Ajax.

Я знаю, как вызвать DialogBox, нажав на кнопку/ссылку и т.д. Но как я могу использовать jQuery UI Dialogпосле отправки формы?

UPDATE

Я нашел решение. You can read the solution in this thread.

+0

только что просмотрел ваше обновление. :/nevermind my answer :) –

ответ

0

Вы должны уметь привязывать обработчик события к событию отправки в форме.

$("form_name_here").bind("submit", function(){$("dialog").open()}) 

Или каким бы то ни было способом показать диалог. Я не могу вспомнить с головы. Другой вариант - использовать плагин jQuery form, поскольку я предполагаю, что вы используете ajax для отправки формы. С этим вы можете передавать методы для всех событий, связанных с представлениями формы. До, после, успеха, сбоя и т. Д.

+0

Форма не отправляется с использованием Ajax. Таким образом, ваше решение будет отображать только диалоговое окно после щелчка, но до перезагрузки страницы. – Steven

+0

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

1

Не используйте тип = 'submit', а привяжите событие jQuery к обычной кнопке, обработайте форму через ajax. Когда вы получаете результаты через ajax, вы можете либо показать результаты запроса ajax в диалоговом окне (PHP генерирует сообщение в диалоговом окне), либо вы можете иметь условие, которое проверяет, было ли это успешным или нет, а затем предпринять соответствующие действия.

Вот пример с формой. (кодирование немного неаккуратно)

$(document).ready(function() { 
     $('#submit').click(function() { 
      name = $('#name').val(); 
      email = $('#email').val(); 
      number = $('#number').val(); 
      message = $('#message').val(); 
      $.post("contact.php", //PHP file to send POST to 
      { ajax: 'yes', name: name, email: email, number: number, message: message }, //POST fields to send 
      function(returned) { //What to do if the POST finishes. 'returned' is the value recieved back from the script. 
       if (returned == 'done') { 
        //PHP script returns the word 'Done' 
         alert('Submit successful'); 
        });     
       } else { 
        alert('An error has occured'); 
}});});});