JQuery Validation Engine, не проверить в реальном времени, если я добавлю элемент после загрузки страницы? - PullRequest
1 голос
/ 19 августа 2010

в настоящее время я использую этот плагин проверки: (http://www.position -absolute.com / articles / jquery-form-validator-потому что-form-validation-is-a-mess / )

, но когда дело доходит до проверки, у меня возникает проблема.

Если я хочу иметь возможность проверить элемент, который не существует с самого начала, он проверяет его только тогда, когдая нажимаю отправить.Но я хочу быть в состоянии, чтобы элемент получил проверку, а фокус потерян.на элементе, который находится там все время, я могу напечатать, потерял фокус, и он пишет «что-то не так» и исчезает, если я изменил значение на что-нибудь правильное.но если я сделаю то же самое для элемента, который я добавил с помощью функции jquery append, он ничего не сделает, пока я не нажму submit.

Любое простое решение для этого.возможно с функцией jquery .live?

это мой скрипт:

var use_ajax=true;
$.validationEngine.settings={};

$("#contact-form").validationEngine({
    inlineValidation: true,
    promptPosition: "centerRight",
    success : function(){use_ajax=true},
    failure : function(){use_ajax=false;}
 })

и это пример элемента, который добавляется при добавлении:

<tr>
   <td><label for="email">Nummer</label></td>
   <td><input type="text" value="" id="nummer" name="nummer" class="validate[required]"></td>
   <td>&nbsp;</td>
</tr>

Принятый ответ, который я получил первым, не будет работать с этим:

      $("#contact-form").validationEngine({
        ajaxSubmit: true,
        ajaxSubmitFile: "submit.php",
        ajaxSubmitMessage: "Contact saved succesful! <br> <img src=''/> <a href='test.php'>TestLink</a>",
        ajaxSubmitExtraData: "contact=john",
        success :  false,
        failure : function() {}
      });

1 Ответ

3 голосов
/ 19 августа 2010

Это нормально.

Когда вы связываете проверку с вашими входами, привязки для фокуса, размытия и т. Д. Привязываются к входам. при добавлении элемента ввода они не связаны.

Чтобы связать их, снова вызовите привязку проверки после добавления новых входных данных.

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

$.removeData($('#my_form_id'),'validator');

и затем связать его снова

$('#my_form_id').validate()

@ Редактировать, чтобы снять привязки к объекту, вы можете сделать .unbind () это для сложных событий. Я думаю, что jqtransform работает на селектор класса? как class = "jqtransform", вы можете попробовать удалить этот класс

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