Backups

Single form used to keep several datasets
</> Source
<!DOCTYPE html>
<html>
<head>
	<title>Backups</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
	<link rel="stylesheet" type="text/css" href="../../../codebase/fonts/font_roboto/roboto.css"/>
	<link rel="stylesheet" type="text/css" href="../../../codebase/dhtmlx.css"/>
	<script src="../../../codebase/dhtmlx.js"></script>

	<style>
		div#tabbar {
			position: relative;
			width: 340px;
			height: 170px;
			margin-top: 50px;
			margin-left: 30px;
			background-color: white;
		}
		div#form {
			position: relative;
			padding-top: 45px;
			padding-bottom: 20px;
			overflow: hidden;
			background-color: #ffffff;
			z-index: 2;
			float: none;
			border-left: 1px solid #dfdfdf;
			border-right: 1px solid #dfdfdf;
			border-bottom: 1px solid #dfdfdf;
		}
		.dhx_tabbar_zone_top .dhx_tab_element {
			-moz-user-select: none;
		}
	</style>
	<script>
		var myForm, formData, dhxTabbar

		// init values for form, will loaded on demoand and then deleted
		var initValues = {
			"a1": { name: "Patrik O'Brain", addr: "22 Acacia Avenue", mail:"patrik@mailme.com"},
			"a2": { name: "Michael Staminsky", addr: "19 Elm Street", mail:"michael@mailme.com"},
			"a3": { name: "Lisa Walsh", addr: "13 Jan Street", mail:"lisa@mailme.com"},
		};

		// here backup ids will stored
		var backupIds = {};

		function doOnLoad() {
			formData = [
				{type: "block", offsetLeft: 12, list: [
					{type: "settings", position: "label-left", labelWidth: 110, inputWidth: 150},
					{type: "input", name: "name", label: "Full Name", value: ""},
					{type: "input", name: "addr", label: "Address", value: ""},
					{type: "input", name: "mail", label: "Email", value: ""}
				]}
			];
			dhxTabbar = new dhtmlXTabBar({
				parent: "tabbar",
				tabs: [
					{id: "a1", text: "Tab 1"},
					{id: "a2", text: "Tab 2"},
					{id: "a3", text: "Tab 3"}
				]
			});

			dhxTabbar.enableContentZone(0);

			myForm = new dhtmlXForm("form", formData);

			dhxTabbar.attachEvent("onSelect", function(to, from){

				// save backup for current active tab
				if (from != null) {
					backupIds[from] = myForm.saveBackup();
				}

				// check if tab opened first time load init values into form otherwise load backup
				if (initValues[to] != null) {
					myForm.setFormData(initValues[to]);
					initValues[to] = null;
					delete initValues[to];
				} else {
					myForm.restoreBackup(backupIds[to]);
					myForm.clearBackup(backupIds[to]);
				}

				return true;
			});

			dhxTabbar.tabs("a1").setActive();
		}
	</script>
</head>
<body onload="doOnLoad();">
	<div>Single form used to keep several datasets</div>
	<div id="tabbar">
		<div id="form"></div>
	</div>
</body>
</html>

Documentation

Check documentation to learn how to use the components and easily implement them in your applications.