143 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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"> </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>
 | 
