<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>jQuery validation plug-in - dynamic forms demo</title>
	<link rel="stylesheet" media="screen" href="css/screen.css">
	<script src="../lib/jquery.js"></script>
	<script src="../dist/jquery.validate.js"></script>
	<script>
	// only for demo purposes
	$.validator.setDefaults({
		submitHandler: function() {
			alert("submitted!");
		}
	});
	$.validator.messages.max = jQuery.validator.format("Your totals mustn't exceed {0}!");

	$.validator.addMethod("quantity", function(value, element) {
		return !this.optional(element) && !this.optional($(element).parent().prev().children("select")[0]);
	}, "Please select both the item and its amount.");

	$().ready(function() {
		$("#orderform").validate({
			errorPlacement: function(error, element) {
				error.appendTo(element.parent().next());
			},
			highlight: function(element, errorClass) {
				$(element).addClass(errorClass).parent().prev().children("select").addClass(errorClass);
			}
		});

		var template = jQuery.validator.format($.trim($("#template").val()));

		function addRow() {
			$(template(i++)).appendTo("#orderitems tbody");
		}

		var i = 1;
		// start with one row
		addRow();
		// add more rows on click
		$("#add").click(addRow);

		// check keyup on quantity inputs to update totals field
		$("#orderform").on("keyup", "input.quantity", function(event) {
			var totals = 0;
			$("#orderitems input.quantity").each(function() {
				totals += +this.value;
			});
			$("#totals").attr("value", totals).valid();
		});

	});
	</script>
	<style>
	form.cmxform {
		width: 50em;
	}
	em.error {
		background:url("images/unchecked.gif") no-repeat 0px 0px;
		padding-left: 16px;
	}
	em.success {
		background:url("images/checked.gif") no-repeat 0px 0px;
		padding-left: 16px;
	}
	form.cmxform label.error {
		margin-left: auto;
		width: 250px;
	}
	form.cmxform input.submit {
		margin-left: 0;
	}
	em.error {
		color: black;
	}
	#warning {
		display: none;
	}
	select.error {
		border: 1px dotted red;
	}
	</style>
</head>
<body>
<h1 id="banner"><a href="https://jqueryvalidation.org/">jQuery Validation Plugin</a> Demo</h1>
<div id="main">
	<textarea style="display:none" id="template">
		<tr>
			<td>
				<label>{0}. Item</label>
			</td>
			<td class='type'>
				<select name="item-type-{0}">
					<option value="">Select...</option>
					<option value="0">Learning jQuery</option>
					<option value="1">jQuery Reference Guide</option>
					<option value="2">jQuery Cookbook</option>
					<option vlaue="3">jQuery In Action</option>
					<option value="4">jQuery For Designers</option>
				</select>
			</td>
			<td class='quantity'>
				<input size='4' class="quantity" min="1" id="item-quantity-{0}" name="item-quantity-{0}">
			</td>
			<td class='quantity-error'></td>
		</tr>
	</textarea>
	<form id="orderform" class="cmxform" method="get" action="foo.html">
		<h2 id="summary"></h2>
		<fieldset>
			<legend>Example with custom methods and heavily customized error display</legend>
			<table id="orderitems">
				<tbody>
				</tbody>
				<tfoot>
					<tr>
						<td colspan="2">
							<label>Totals (max 25)</label>
						</td>
						<td class="totals">
							<input id="totals" name="totals" value="0" max="25" readonly="readonly" size='4'>
						</td>
						<td class="totals-error"></td>
					</tr>
					<tr>
						<td colspan="2">&nbsp;</td>
						<td>
							<input class="submit" type="submit" value="Submit">
						</td>
					</tr>
				</tfoot>
			</table>
		</fieldset>
	</form>
	<button id="add">Add another input to the form</button>
	<h1 id="warning">Your form contains tons of errors! Please try again.</h1>
	<p><a href="index.html">Back to main page</a>
	</p>
</div>
</body>
</html>