2015-10-21 2 views
0

Я использую проверку JQuery (http://jqueryvalidation.org) для подтверждения формы. Мой код:Jquery Validate on dynamic form

<div id="form-section"></div> 
<button id="add-form" type="button">Add form</button> 

<script> 
    $(document).ready(function() { 
     $('#add-form').click(function() { 
      $('#form-section').html('<form id="myform"> <input type="email" name="email" placeholder="Email" required> <input type="password" name="password" placeholder="Password" required> <button type="submit">Submit</button> </form>'); 
     }); 

     $('#myform').validate(); 
    }) 
</script> 

Но $('#myform').validate(); не работает. Как я могу проверить динамическую форму? Благодаря!

ответ

1

Элемент #myform не существует в DOM при первом вызове validate(). Вместо этого поместите эту линию в пределах click() обработчика, после того, как form создается:

$('#add-form').click(function() { 
    $('#form-section').html('<form id="myform"> <input type="email" name="email" placeholder="Email" required> <input type="password" name="password" placeholder="Password" required> <button type="submit">Submit</button> </form>'); 
    $('#myform').validate(); 
}); 
+0

Да, эта работа хорошо, но есть ли способ, чтобы использовать его с JQuery .on() функции, такие как $ ('# form-section '). on()?. – duyvu1311

+0

Я не уверен, что вы имеете в виду. 'on()' относится к обработчику событий, который у вас уже есть в форме 'click()'. –

+0

Я не знаю, поддерживает ли Jquery Validate событие, например событие submit. Пример: $ ('# form-section'). On ('validate', '#myform', function() {// некоторый код}); – duyvu1311