Я пишу процедуру проверки для формы JQuery Ui с вкладками. Код позади - ASP.net, и я хотел бы, чтобы функция в коде запускалась, когда пользователь нажимает «сохранить изменения» на ссылке.
Чтобы сделать это, я спрятал кнопку со щелчком по ссылке на функцию, которая нажимается при проверке вкладок. Однако по какой-то причине онклик не срабатывает (даже когда я делаю кнопку видимой и сам нажимаю на нее).
Я думаю, это из-за моей функции проверки. У меня была более упрощенная версия, которая работала, но я хочу использовать эту версию, поскольку она выделяет вкладки, которые имеют проблемы с проверкой. Мой код ...
$(function () {
$("#tabs").tabs();
});
$(document).ready(function () {
$("#tabs :input").attr("disabled", true);
});
$("##ctl00_ContentPlaceHolder1_submitButton").button();
$(document).ready(function () {
$("#updateLink").click(function () {
if ($("#updateLink").text() == 'CLICK TO EDIT') {
$("#updateLink").text("SAVE CHANGES")
toEditMode();
} else {
if ($("#aspnetForm").valid()) {
$("#aspnetForm").submit();
$("#ctl00_ContentPlaceHolder1_submitButton").click();
$("#updateLink").text("CLICK TO EDIT")
toDisplayMode();
}
}
});
});
function toEditMode() {
$('#tabs :input').removeAttr('disabled');
}
function toDisplayMode() {
$("#tabs :input").attr("disabled", true);
}
$("#aspnetForm").validate({
submitHandler: function (form) {
alert("submitted!");
},
invalidHandler: function (form, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var invalidPanels = $(validator.invalidElements()).closest(".ui-tabs-panel", form);
if (invalidPanels.size() > 0) {
$.each($.unique(invalidPanels.get()), function () {
$(this).siblings(".ui-tabs-nav")
.find("a[href='#" + this.id + "']").parent().not(".ui-tabs-selected")
.addClass("ui-state-error")
.show("pulsate", { times: 3 });
});
}
}
},
unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
var $panel = $(element).closest(".ui-tabs-panel", element.form);
if ($panel.size() > 0) {
if ($panel.find("." + errorClass + ":visible").size() == 0) {
$panel.siblings(".ui-tabs-nav").find("a[href='#" + $panel[0].id + "']")
.parent().removeClass("ui-state-error");
}
}
}
});