Повторная привязка валидации инструментов jquery после загрузки другого контента - PullRequest
1 голос
/ 04 августа 2011

Я использую плагин проверки инструментов jquery для проверки формы на стороне клиента.у меня есть один файл javascript, который загружает функцию ниже по готовности.

Что я делаю, я загружаю форму, когда она успешно проверяется и отправляется, я загружаю другую форму и хотел бы функциюниже для обработки любой формы, которая загружается в блоке оператора if (json.success && json.next).

По какой-то причине, когда загружается вторая форма, валидатор не привязывается ккласс (.signup_form) новой формы, и проверка не происходит.

Любая идея, как я мог бы прикрепить $ .live или что-нибудь к этому, так что он будет автоматически привязывать себя к любой загружаемой формес классом .signup_form после успеха?

/* For clarification: json.next is the url of the next form to load */

$(".signup_form").validator({
position: 'top left', 
offset: [-12, 0],
message: '<div><em/></div>' // em element is the arrow
}).submit(function(e) {

  var form = $(this);

  // client-side validation OK.
  if(!e.isDefaultPrevented()) {

    // submit with AJAX
    $.post(form.attr('action'), form.serialize(), function(json) {

      // everything is ok. (server returned true)
      if (json.success && json.next)  {
        form.parent().parent().load(json.next); // Slide here
        form.reset();

      // server-side validation failed. use invalidate() to show errors
      } else {
        form.data("validator").invalidate(json);
      }
    }, "json");

    // prevent default form submission logic
    e.preventDefault();

  }
});

любая помощь очень ценится.T

Хорошо, я понял это ... черт, это так очевидно.

, так что весь код выше у меня в пределах

form_listener = function() {}

block.

теперь все, что мне нужно сделать, это вызвать прослушиватель формы после загрузки новой формы:

.
.
      // everything is ok. (server returned true)
      if (json.success && json.next)  {
        form.parent().parent().load(json.next, function(){
        form_listener();
      });

.
.

sweet.

...