Проверка форм с использованием XAJAX

Я использую jQuery, чтобы определить, когда пользователь отправил форму. Затем я вызываю, используя xajax, метод php для запроса базы данных и удостоверяюсь, что имя пользователя и адрес электронной почты еще не используются.


  $('#newUserForm').submit(function() {
      var FormName = $(this).attr('name');
      xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName));
  });

Then in validateEmailAddressAndUsername I query the database and validate this way.

The problem that I have encounter is that jquery is asynchronous, and there is no way for me to add a script with the right xajax response before the form gets submitted. how can I address this problem?
should I do it in a different way?

Thank you


person Onema    schedule 21.09.2009    source источник


Ответы (1)


Иногда у меня возникают проблемы с использованием #(obj).submit(). .bind кажется более надежным. Вы могли бы сделать что-то вроде этого, я думаю (не проверено):

$('#newUserForm').bind('submit', function() {
     var FormName = $(this).attr('name');
     if (xajax_validateEmailAddressAndUsername(xajax.getFormValues(FormName))) {
          $(this).submit();
     }
     else {
         alert("Oh no!"); 
         return false;
     }
}
person Electronic Zebra    schedule 21.09.2009
comment
этот код застревает в бесконечной рекурсии... Но я думаю, что вы что-то поняли. Мой вопрос: каким должен быть ответ xajax, чтобы оператор if оценивал значение TRUE? - person Onema; 22.09.2009
comment
Я понимаю, почему он бесконечно зависает, я торопился, когда писал этот ответ. Если в настоящее время возвращается true и выполняется повторная отправка. Попробуйте использовать $.post вместо $(this).submit() docs.jquery.com/Ajax /jQuery.post - person Electronic Zebra; 22.09.2009