2011-01-31 70 views
3

我需要將jQuery validate plugin綁定到我即時生成的表單。據我所知.live()是在jQuery中做到這一點的唯一方法。它似乎沒有工作,至少我嘗試的方式。我認爲這是可行的,它只是eebkac!JQuery:將.validate插件綁定到.live

這工作得很好:

​​

這將生成語法錯誤:

$("form#form_CreateUser").live('validate', function() { 
    submitHandler: function(form) { 
    // do other stuff for a valid form 
    UserSubmit(); 
    } 
}); 
+0

請不要在堆棧溢出中使用URL縮寫器。 – 2011-01-31 21:55:56

回答

14

這不起作用,因爲你誤會了怎麼validate作品。它看起來像像事件處理程序的功能,如click,但它實際上不是。

clickbind('click', fn)的快捷方式。 validate通過使用bind不起作用。由於live實際上是使bind調用適用於尚不存在的元素的一種方法,因此它不適用於validate

這樣做的最簡單方法是創建一個函數,調用validate並在每次插入新內容時調用該函數。例如,如果您使用AJAX插入表單,則可以使用ajaxComplete函數:

function setupValidate() { 
    $("form#form_CreateUser").validate({ 
     submitHandler: function(form) { 
      // do other stuff for a valid form 
      UserSubmit(); 
     } 
    }); 
} 

$(document).ajaxComplete(setupValidate); // after every AJAX request 
setupValidate(); // right now 
+1

感謝您的支持。這對我也有幫助。 – 2011-09-23 06:07:26