2015-09-16 2 views
1

У меня две формы без id, я мог бы иметь больше, когда я пытаюсь проверить с помощью JQuery Validation Plugin. Это успешно, но сообщение помещается всегда внутри первой формы.jQuery Validate with multiples forms

<form class="myform" action="http://www.google.com"> 
    <input type="text" name="mytext"/> 
    <button class="mybutton">Send</button> 
</form> 
<form class="myform" action="http://www.google.com"> 
    <input type="text" name="mytext"/> 
    <button class="mybutton">Send</button> 
</form> 

JQuery Validation является

<script> 
     $(function() { 
      $('.myform').validate({ 
       rules: { 
        mytext: 'required' 
       }, 
       messages: { 
        mytext: 'Required field' 
       } 
      }); 
      $('.mybutton').click(function() { 
       var form = $(this).closest('.myform'); 
       console.log("Action form is: " + form.attr('action')); 
       form.valid(); 
      }); 
     }); 
    </script> 

Когда я нажимаю кнопку, я знаю, что проверка прошла успешно, потому что вывод Action form is: http://stackoverflow.com при нажатии на первую кнопку, и Action form is: http://www.google.com при нажатии на вторую кнопку ,

Возможно ли каким-либо образом поместить ошибку в правильном формате?

Example in JSFiddle

+0

Вы не можете добавить что-то уникальное в форме? – mituw16

+0

Да, я мог бы, но я должен попытаться сделать это только с помощью селектора классов, потому что мой клиент не хочет много изменений. Я думаю, что проблема заключается в плагине JQueryValidation, когда он ищет входные данные в форме. – rvillablanca

ответ

1

Вы можете использовать .each() цикл:

$('.myform').each(function(){ 
    $(this).validate({ 
     rules: { 
      mytext: 'required' 
     }, 
     messages: { 
      mytext: 'Required field' 
     } 
    }); 
}); 

JSFiddle