JQuery: скрыть / показать что-то после отправки формы / перезагрузки страницы - PullRequest
2 голосов
/ 06 марта 2009

На моей странице есть формы, которые по умолчанию имеют значение .hide () при загрузке страницы. Эти две формы - создание учетной записи и логин. Они показываются пользователю после нажатия на соответствующую ссылку (.show ()).

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

В настоящее время формы используют простую отправку html-формы для доступа к базе данных. Есть ли лучший способ сделать это с помощью jquery, который не слишком сложен? (я все еще довольно новичок в этом, но учусь)

Спасибо

Ответы [ 3 ]

3 голосов
/ 06 марта 2009

Вы можете назначить обработчик для действия «отправить» формы и делать с ним все что угодно. Отправьте его асинхронно, снова удалите форму, оставьте ее там, что угодно. Вот отправная точка:

$('#myloginform').submit( function() {
  var form = $(this);
  $.post(
    form.attr('action'),
    form.serialize(),
    success: function( response ) {
      // do something when all is well
      form.hide();
    },
    failure: function( respones ) {
      // do something when everything explodes
      form.addClass('error');
    }
  );
  return false; // don't fire the regular handler
} );

Документация по jQuery API предоставит вам более подробную информацию о обработчике submit (и аналогичном), а также о $.post и друзьях.

edit: Этот код должен войти в ваш обработчик $(document).ready, я полагаю, у вас уже есть show s и hide s.

0 голосов
/ 06 марта 2009

Предполагая, что вы не можете использовать ajax, добавьте что-то в URL или тело страницы, где говорится, что произошла ошибка. Затем сделайте что-то вроде ..

jQuery(document).ready( function()
{
  if(form_error) // check for the error in some way (query_string, a div with an 'error class'
  {
    jQuery('.form-selector').show();
  }
});
0 голосов
/ 06 марта 2009

Я бы попробовал jQuery Form Plugin . Это позволяет вам отправлять форму, используя ajax.

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

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

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