PageRenderTime 51ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/jquery-validate/demo/dynamic-totals.html

#
HTML | 151 lines | 129 code | 22 blank | 0 comment | 0 complexity | c8b150486e442399fcc1d78628dd99da MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  6. <title>jQuery validation plug-in - dynamic forms demo</title>
  7. <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
  8. <script src="../lib/jquery.js" type="text/javascript"></script>
  9. <script src="../jquery.validate.js" type="text/javascript"></script>
  10. <script type="text/javascript">
  11. // only for demo purposes
  12. $.validator.setDefaults({
  13. submitHandler: function() {
  14. alert("submitted!");
  15. }
  16. });
  17. $.validator.messages.max = jQuery.format("Your totals musn't exceed {0}!");
  18. $.validator.addMethod("quantity", function(value, element) {
  19. return !this.optional(element) && !this.optional($(element).parent().prev().children("select")[0]);
  20. }, "Please select both the item and its amount.");
  21. $().ready(function() {
  22. $("#orderform").validate({
  23. errorPlacement: function(error, element) {
  24. error.appendTo( element.parent().next() );
  25. },
  26. highlight: function(element, errorClass) {
  27. $(element).addClass(errorClass).parent().prev().children("select").addClass(errorClass);
  28. }
  29. });
  30. var template = jQuery.format($("#template").val());
  31. function addRow() {
  32. $(template(i++)).appendTo("#orderitems tbody");
  33. }
  34. var i = 1;
  35. // start with one row
  36. addRow();
  37. // add more rows on click
  38. $("#add").click(addRow);
  39. // check keyup on quantity inputs to update totals field
  40. $("#orderform").delegate("keyup", "input.quantity", function(event) {
  41. var totals = 0;
  42. $("#orderitems input.quantity").each(function() {
  43. totals += +this.value;
  44. });
  45. $("#totals").attr("value", totals).valid();
  46. });
  47. });
  48. </script>
  49. <style type="text/css">
  50. form.cmxform { width: 50em; }
  51. em.error {
  52. background:url("images/unchecked.gif") no-repeat 0px 0px;
  53. padding-left: 16px;
  54. }
  55. em.success {
  56. background:url("images/checked.gif") no-repeat 0px 0px;
  57. padding-left: 16px;
  58. }
  59. form.cmxform label.error {
  60. margin-left: auto;
  61. width: 250px;
  62. }
  63. form.cmxform input.submit {
  64. margin-left: 0;
  65. }
  66. em.error { color: black; }
  67. #warning { display: none; }
  68. select.error {
  69. border: 1px dotted red;
  70. }
  71. </style>
  72. </head>
  73. <body>
  74. <h1 id="banner"><a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Demo</h1>
  75. <div id="main">
  76. <textarea style="display:none" id="template">
  77. <tr>
  78. <td>
  79. <label>{0}. Item</label>
  80. </td>
  81. <td class='type'>
  82. <select name="item-type-{0}">
  83. <option value="">Select...</option>
  84. <option value="0">Learning jQuery</option>
  85. <option value="1">jQuery Reference Guide</option>
  86. <option value="2">jQuery Cookbook</option>
  87. <option vlaue="3">jQuery In Action</option>
  88. <option value="4">jQuery For Designers</option>
  89. </select>
  90. </td>
  91. <td class='quantity'>
  92. <input size='4' class="quantity" min="1" id="item-quantity-{0}" name="item-quantity-{0}" />
  93. </td>
  94. <td class='quantity-error'></td>
  95. </tr>
  96. </textarea>
  97. <form id="orderform" class="cmxform" method="get" action="foo.html">
  98. <h2 id="summary"></h2>
  99. <fieldset>
  100. <legend>Example with custom methods and heavily customized error display</legend>
  101. <table id="orderitems">
  102. <tbody>
  103. </tbody>
  104. <tfoot>
  105. <tr>
  106. <td colspan="2"><label>Totals (max 25)</label></td>
  107. <td class="totals"><input id="totals" name="totals" value="0" max="25" readonly="readonly" size='4' /></td>
  108. <td class="totals-error"></td>
  109. </tr>
  110. <tr>
  111. <td colspan="2">&nbsp;</td>
  112. <td><input class="submit" type="submit" value="Submit"/></td>
  113. </tr>
  114. </tfoot>
  115. </table>
  116. </fieldset>
  117. </form>
  118. <button id="add">Add another input to the form</button>
  119. <h1 id="warning">Your form contains tons of errors! Please try again.</h1>
  120. <p><a href="index.html">Back to main page</a></p>
  121. </div>
  122. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  123. </script>
  124. <script type="text/javascript">
  125. _uacct = "UA-2623402-1";
  126. urchinTracker();
  127. </script>
  128. </body>
  129. </html>