Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 30th, 2012  |  syntax: None  |  size: 3.95 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Faux jquery pages
  2. <!doctype html>
  3. <html>
  4. <head>
  5. <meta charset="utf-8">
  6. <title>Faux Multipage Form</title>
  7. <style>
  8. #container {
  9.   font-family: arial;
  10.   width: 600px;
  11.   margin: 0 auto;
  12. }
  13.  
  14. form.multipage {
  15.   width: inherit;
  16. }
  17.  
  18. fieldset {
  19.   width: inherit;
  20.   background: #fff;
  21.   border: none;
  22. }
  23.  
  24. legend {
  25.   font-size: 2em;
  26. }
  27.  
  28. label {
  29.   display: block;
  30. }
  31.  
  32. button {
  33.   background: black;
  34.   color: #fff;
  35.   border: #222;
  36.   border-radius: 20px;
  37.   padding: 5px 20px;
  38.   display: block;
  39.   margin: 20px 10px;
  40.   clear: left;
  41. }
  42. button.next { float: right;}
  43. button.previous { float: right;}
  44.  
  45. button:hover {
  46.   background: #666;
  47. }
  48. input[type=text] {
  49.   width: 550px;
  50. }
  51.  
  52. </style>
  53. </head>
  54.  
  55. <body>
  56.  
  57. <div id="container">
  58.  
  59. <form id="form" class="multipage" name="checkout">
  60. <fieldset>
  61.     <legend>Contact Details</legend>
  62.     <label for="your_name">Your Name</label>
  63.     <input type="text" value="" name="your_name">
  64.  
  65.     <label for="your_phone">Your Phone</label>
  66.     <input type="text" value="" name="your_phone">
  67.  
  68.     <label for="your_address">Your Address</label>
  69.     <input type="text" value="" name="your_address">
  70. </fieldset>
  71.  
  72. <fieldset>
  73.     <legend>Shipping Details</legend>
  74.     <label for="shipping_name">Shipping Name</label>
  75.     <input type="text" value="" name="shipping_name">
  76.  
  77.     <label for="shipping_phone">Shipping Phone</label>
  78.     <input type="text" value="" name="shipping_phone">
  79.  
  80.     <label for="shipping_address">Shipping Address</label>
  81.     <input type="text" value="" name="shipping_address">
  82. </fieldset>
  83.  
  84. <fieldset>
  85.     <legend>Payment</legend>
  86.     <label for="payment_type">Payment Type</label>
  87.     <select name="payment_type">
  88.       <option>VISA</option>
  89.       <option>MasterCard</option>
  90.       <option>Diners</option>
  91.     </select>
  92.  
  93.     <label for="creditcard">Credit Card</label>
  94.     <input type="text" value="" name="creditcard">
  95. </fieldset>
  96.  
  97. <fieldset>
  98.     <legend>Review</legend>
  99.     <div id="review_order" style="height: 200px; background: #efefef"></div>
  100.     <input type="submit" name="submit">
  101. </fieldset>
  102. </form>
  103.  
  104. </div> <!--! end of #container -->
  105.  
  106.  
  107. <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.js"></script>')</script>
  108. <script type="text/javascript">
  109. var multipageForm = {
  110.  
  111. init: function(formName) {
  112.  
  113.   var form = 'form[name=' + formName + ']';
  114.   var fieldsets = $(form + ' fieldset');
  115.   var totalFieldSets = fieldsets.length;
  116.  
  117.   for (var i = 0; i < fieldsets.length; i++) {
  118.     var fieldset = fieldsets[i];
  119.  
  120.     // Hide the fieldsets
  121.     multipageForm.hidePages(fieldset, i);
  122.     // Create the buttons
  123.     multipageForm.createButtons(fieldset, i, totalFieldSets, form);
  124.  
  125.   };
  126. },
  127.  
  128. createButtons: function(fieldset, index, totalFieldSets, form) {
  129.   var thisPage = index;    
  130.     index = index + 1,
  131.     nextPage = index,
  132.     prevPage = index - 1;
  133.  
  134.  
  135.   if (index != totalFieldSets) {  
  136.     var nextButton = '<button class="next" date-role="button" data-gotopage="' + nextPage + '">Next</button>';
  137.     $(fieldset).append(nextButton).on('click', 'button.next',  function(event){
  138.           var nextLink = $(this).data('gotopage');
  139.           $(form + ' fieldset:eq(' + thisPage + ')').hide();
  140.           $(form + ' fieldset:eq(' + nextLink + ')').show();
  141.       return false;
  142.     });
  143.   }
  144.  
  145.   if (index != 1) {
  146.     var prevButton = '<button class="previous" date-role="button" data-gotopage="' + prevPage + '">Previous</button>';
  147.     $(fieldset).append(prevButton).on('click', 'button.previous',  function(event){
  148.           var nextLink = $(this).data('gotopage');
  149.           $(form + ' fieldset:eq(' + thisPage + ')').hide();
  150.           $(form + ' fieldset:eq(' + PrevLink + ')').show();
  151.       return false;
  152.     });
  153.   }
  154.  
  155. },
  156.  
  157. hidePages: function(fieldset, index) {
  158.   // Hide all fieldsets except the first fieldset
  159.   if (index > 0) {
  160.     $(fieldset).hide();
  161.   }
  162. }
  163.  
  164. };
  165.  
  166. multipageForm.init('checkout');
  167. </script>
  168.  
  169. </body>
  170. </html>
  171.        
  172. var thisPage = index;
  173. index = index + 1,
  174. nextPage = index,
  175. prevPage = index - 1;
  176.        
  177. var thisPage = index;
  178. prevPage = index - 1;
  179. nextPage = ++index; // this also adds 1 to index