#html #validation
#HTML #проверка
Вопрос:
на данный момент я использую этот плагин проверки: ( http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/)
но когда дело доходит до части проверки, у меня возникает проблема.
Если я хочу иметь возможность проверять элемент, который не существует с самого начала, он проверяет его только при нажатии кнопки отправить. Но я хочу иметь возможность, чтобы элемент получал проверку, особенно при потере фокуса. на элементе, который находится там все время, когда я могу печатать, фокус потерян, и он пишет «что-то не так» и исчезает, если я изменил значение на что-либо правильное. но если я проделаю то же самое с элементом, который я добавил с помощью функции добавления jquery, она ничего не сделает, пока я не нажму отправить.
у кого-нибудь есть простое решение для этого. возможно, с помощью функции jquery .live?
это мой скрипт:
var use_ajax=true;
$.validationEn&ine.settin&s={};
$("#contact-form").validationEn&ine({
inlineValidation: true,
promptPosition: "centerRi&ht",
success : function(){use_ajax=true},
failure : function(){use_ajax=false;}
})
и это пример элемента, который добавляется с помощью append:
<tr&&t;
<td&&t;<label for="email"&&t;Nummer</label&&t;</td&&t;
<td&&t;<input type="text" value="" id="nummer" name="nummer" class="validate[required]"&&t;</td&&t;
<td&&t;amp;nbsp;</td&&t;
</tr&&t;
Принятый ответ, который я получил первым, не будет работать с этим:
$("#contact-form").validationEn&ine({
ajaxSubmit: true,
ajaxSubmitFile: "submit.php",
ajaxSubmitMessa&e: "Contact saved succesful! <br&&t; <im& src=''/&&t; <a href='test.php'&&t;TestLink</a&&t;",
ajaxSubmitExtraData: "contact=john",
success : false,
failure : function() {}
});
Ответ №1:
Это нормально.
Когда вы привязываете проверку к своим входным данным, привязки для фокусировки, размытия и т.д. привязываются к входным данным. когда вы добавляете элемент ввода, они не привязаны.
Чтобы привязать их, снова вызовите привязку проверки после добавления новых входных данных.
Может случиться так, что элементы, которые были связаны, получат вторые привязки, поэтому вам, возможно, придется отменить привязку средства проверки:
$.removeData($('#my_form_id'),'validator');
а затем привязываю его снова
$('#my_form_id').validate()
@Edit чтобы освободить любые привязки к объекту, вы можете выполнить .unbind() это для сложных событий. Я думаю, что jqtransform работает с селектором классов? например, class=»jqtransform», вы можете попытаться удалить этот класс
Комментарии:
1. Спасибо, что решили мою проблему. Возможно, вы знаете, как я могу удалить привязку и для jqTransfom?
2. @Nealv, на самом деле это $ (‘my_form_id’).validationEn&ine(‘validate’) , а не $ (‘#my_form_id’).validate() Но спасибо, у меня все отлично сработало 🙂