1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| $("<tabsId>").tabs( {
select : function(event, ui) {
$("#loadingDiv").show();
var valid = true;
$.ajax( {
async : false,
url : "<validateUrl>",
type : "POST",
processData : true,
dataType : "json",
data : $("<FormId>").serializeArray(),
success : function(data) {
if (data.errors) {
valid = false;
$("div.error-message").attr("title", "error");
$.each(data.errors.data, function(model, errors) {
for (fieldName in this) {
var inputID = camelize(model + "_" + fieldName);
var element = $("#" + inputID);
var elementError = $("#" + inputID + "_error");
if (elementError.length > 0) {
elementError.text(this[fieldName]);
elementError.effect("shake", {
times : 2,
distance : 10
}, 150);
elementError.removeAttr("title");
} else {
var _insert = $(document.createElement("div"))
.addClass("error-message");
_insert.attr("id", inputID + "_error");
_insert.text(this[fieldName]).hide().insertAfter(
element);
_insert.slideDown(200);
}
}
});
$("div.error-message[title=error]").slideUp(200, function() {
$(this).remove();
});
} else
$(".error-message").hide();
$("#loadingDiv").hide();
}
});
return valid;
}
}); |
Partager