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