Понеділок, 20 жовтня 2008 р.

jQuery validation

Потрібно було мені перевірити поля з email і паролем перед відсиланням на сервер.
Я вирішив використати для цього jQuery. Знайшов чудовий плагін Validation, який дозволяє досить легко налаштувати що і як перевіряти.

Ось код який я використав для перевірки моїх ASP.NET полів:
$().ready(function () {
$("#aspnetForm").validate({
rules: {
txtEmail: {
required: true,
email: true
},
txtPassword: {
required: true
}
},
messages: {
txtEmail: "Please enter a valid email address",
txtPassword: "Please provide a password"
}
});
});


Але в мене виникла проблема: поля перевірялись лише після натискання на asp:Button чи простого input, але я використовував на сторінці LinkButton який викликав __doPostBack а не стандартний метод submit. Трохи покопавшись в коді я знайшов вирішення.

Можна написати так:
$().ready(function () {
$("#aspnetForm").validate({
.....
});
var form = $("#aspnetForm")[0];
form.onsubmit = function () {
return $("#aspnetForm").triggerHandler("submit");
};
});


Але мені потрібно перевіряти значення і блокувати надсилання данних на сервер, лише, при натисненні певної кнопки. Далі наводжу повний код для валідації який я використав:
$().ready(function () {
$("#aspnetForm").validate({
rules: {
txtEmail: {
required: true,
email: true
},
txtPassword: {
required: true
}
},
messages: {
txtEmail: "Please enter a valid email address",
txtPassword: "Please provide a password"
}
});
$("#").click(function () {
return $("#aspnetForm").triggerHandler("submit");
});
});