Я склонен использовать другой подход к этому. Когда у меня есть объекты (обычно формы), которым необходимо привязать к ним много клиентского поведения, я определяю объекты JavaScript, которые представляют эти формы.
Например, форма контакта может иметь соответствующий объект Contact, который инициализируется с помощью context элементов внутренней формы (текстовые поля, кнопки и т. Д.). Затем во время инициализации вы можете использовать jQuery (или ваш выбор), чтобы добавить поведение к этим элементам. В вашем случае вы бы привязали событие click, которое вызвало бы функцию проверки в вашем объекте Contact.
Это кажется более чистым, чем создание целой связки не связанных между собой плагинов для обеспечения очень специфического поведения.
РЕДАКТИРОВАТЬ, ЧТОБЫ ПРЕДОСТАВИТЬ ПРИМЕР
Вот быстрый и простой пример этого в действии: http://jsbin.com/elefi/edit
код:
if(typeof(MyDomain) == "undefined") {
MyDomain = {};
MyDomain.MyApp = {};
}
MyDomain.MyApp.ContactForm = function() {
var $_submitButton;
var $_firstNameTextBox;
var _validateForm = function () {
if($_firstNameTextBox.val() === '') {
alert('Form Invalid');
}
else {
alert('Form Valid');
}
};
return {
initialize: function(submitButtonId, firstNameTextBoxId) {
// Add context
$_submitButton = $("#" + submitButtonId);
$_firstNameTextBox = $("#" + firstNameTextBoxId)
// Add behaviours
$_submitButton.click(_validateForm);
}
}
}();
// Emit this using your server-side code
$(function() {
MyDomain.MyApp.ContactForm.initialize('SubmitButton', 'FirstName');
});
Обратите внимание, что IE6, похоже, не нравится jsbin.com, поэтому откройте его в FF