index.html 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Retro Cinema Registration</title>
  6. <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.3/themes/swanky-purse/jquery-ui.css">
  7. <script src="../../lib/jquery.js"></script>
  8. <script src="https://code.jquery.com/ui/1.11.3/jquery-ui.js"></script>
  9. <script src="../../dist/jquery.validate.js"></script>
  10. <script>
  11. $( function() {
  12. $.validator.addMethod( "adultsOnly", function( value, element ) {
  13. if ( $( "#movie .adult:checked" ).val() === "on" ) {
  14. var now = new Date();
  15. var dob = $( "#dob" ).datepicker( "getDate" );
  16. var age = now - dob;
  17. return Math.floor( age / 31536000000 ) >= 18;
  18. }
  19. return true;
  20. } );
  21. $( "#movie" ).buttonset();
  22. $( "#customer, #email, #dob, #reserve" ).button();
  23. $( "#dob" ).datepicker( {
  24. changeMonth: true,
  25. changeYear: true,
  26. yearRange: "-100:+0",
  27. maxDate: "+0D"
  28. } );
  29. $( "#reservation" ).validate( {
  30. errorClass: "ui-state-error",
  31. rules: {
  32. customer: "required",
  33. email: {
  34. required: true,
  35. email: true
  36. },
  37. dob: {
  38. required: true,
  39. date: true
  40. },
  41. movie: {
  42. required: true,
  43. adultsOnly: true
  44. }
  45. },
  46. messages: {
  47. customer: "Please enter your name",
  48. email: {
  49. required: "Please enter your email",
  50. email: "Please enter a valid email"
  51. },
  52. dob: {
  53. required: "Please enter your dob",
  54. date: "Please enter a valid date"
  55. },
  56. movie: {
  57. required: "Please choose a movie",
  58. adultsOnly: "This movie is for adults only!"
  59. }
  60. },
  61. errorPlacement: function( error, element ) {
  62. if ( element.is( ":radio" ) ) {
  63. $( "<br>" ).appendTo( element.parent().parent().find( "label:first" ) );
  64. error.appendTo( element.parent().parent().find( "label:first" ) );
  65. } else {
  66. $( "<br>" ).appendTo( element.parent().find( "label" ) );
  67. error.appendTo( element.parent().find( "label" ) );
  68. }
  69. }
  70. } );
  71. } );
  72. </script>
  73. <style>
  74. #customer, #email, #dob {
  75. height: 1.5em;
  76. width: 20em;
  77. text-align: left;
  78. outline: none;
  79. cursor: text;
  80. }
  81. .formlabel {
  82. float: left;
  83. width: 12em;
  84. }
  85. #reserve {
  86. margin-left: 12em;
  87. }
  88. legend {
  89. padding: 1em;
  90. font-size: 1.2em !important;
  91. }
  92. div {
  93. margin: 1em 0 1em 0;
  94. }
  95. </style>
  96. </head>
  97. <body>
  98. <form id="reservation" method="get" action="">
  99. <fieldset class="ui-widget ui-widget-content ui-corner-all">
  100. <legend class="ui-widget ui-widget-header ui-corner-all">Retro Cinema Reservation</legend>
  101. <div>
  102. <label for="customer" class="formlabel">Name</label>
  103. <input type="text" id="customer" name="customer">
  104. </div>
  105. <div>
  106. <label for="email" class="formlabel">Email</label>
  107. <input type="email" id="email" name="email">
  108. </div>
  109. <div>
  110. <label for="dob" class="formlabel">Date of Birth</label>
  111. <input type="text" id="dob" name="dob">
  112. </div>
  113. <div>
  114. <label for="movie" class="formlabel">Choose your Movie</label>
  115. <div id="movie">
  116. <label for="movie1"><img src="saucer_men.jpg" alt="Invasion of the Saucer Men" style="width:200px;height:300px;"><br>Invasion of the<br>Saucer Men</label>
  117. <input type="radio" id="movie1" name="movie">
  118. <label for="movie2"><img src="plan_9.jpg" alt="Plan 9 from Outer Space" style="width:200px;height:300px;"><br>Plan 9 from<br>Outer Space</label>
  119. <input type="radio" id="movie2" name="movie">
  120. <label for="movie3"><img src="refer_madness.jpg" alt="Reefer Madness - Adults Only" style="width:200px;height:300px;"><br>Reefer Madness<br>Adults Only</label>
  121. <input type="radio" id="movie3" name="movie" class="adult">
  122. </div>
  123. </div>
  124. <div>
  125. <input type="submit" id="reserve" name="reserve" value="reserve">
  126. </div>
  127. </fieldset>
  128. </form>
  129. </body>
  130. </html>