2015-09-16 62 views
1

我有兩種形式沒有ID,我可以有更多,當我嘗試驗證與JQuery驗證插件它是成功的但消息總是放置在第一種形式。jQuery使用倍數形式驗證

<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的驗證是

<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