2013-04-12 113 views
0

在頁面上我有一個表單,我需要使用某種按鈕進行驗證,但是表單可以被複制,因此有多個表單具有相同的classid。沒問題,這可以通過多個表單驗證

$(button.validate).click(function(){ 
    $(this.form).validate();  
}); 

的validate()函數來完成不與該運營商像其他職能的工作,所以我想問的是有另一種方式做到這一點?我不能給每個表單的唯一ID ...我只是在窗體中分配一個按鈕來驗證其附加的表單。

function validate(targetform){ 


    $(targetform).validate({ 

      errorPlacement: function (error, element) {     
      error.appendTo(element.parent("div").next("div")); 
      }   
     }); 
    } 

的Html

<button onclick="validate($(this).closest('form'))">validate</button> 
+0

是在sa上打開的形式我的時間?我的意思是複製和原來的? –

回答

0

你可以從每個按鈕的形式

$(document).ready(function() { 
    $('.myButtonClass').click(function() { 
     var relevantFormID = $(this).closest('form').prop('id'); 
     ValidateForm(relevantFormID); 
    }); 
} 

然後,單獨ValidateForm函數可以完成所有的工作:

function ValidateForm(targetFormID) { 
    $targetForm = $('form[id="' + targetFormID + '"]'); 
    //Your target form is now available as a jQuery object, all perks included 
    //validation goes here 
} 
+0

第一篇文章中的腳本應該和你的答案一樣好,但是問題是,我不能在$(document).ready()函數之外調用.validate()函數 – user2207726

+0

,然後將你的驗證隔離爲一個單獨的函數,將該函數的形式ID作爲參數傳遞。然後,您可以在函數中檢索表單,並從中取出 –

+0

未捕獲的類型錯誤:對象[對象對象]沒有方法'驗證' – user2207726