wizard.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <th:block th:include="include :: header('基本表单')" />
  5. <th:block th:include="include :: jquery-steps-css" />
  6. </head>
  7. <body class="gray-bg">
  8. <div class="wrapper wrapper-content animated fadeInRight">
  9. <div class="row">
  10. <div class="col-sm-5">
  11. <div class="jumbotron">
  12. <h1>表单向导</h1>
  13. <p>Smart UI 部件允许您快速创建表单向导接口。</p>
  14. <p><a href="https://github.com/rstaib/jquery-steps" target="_blank" class="btn btn-primary btn-lg" role="button">了解 jQuery Steps</a>
  15. </p>
  16. </div>
  17. </div>
  18. <div class="col-sm-7">
  19. <div class="ibox float-e-margins">
  20. <div class="ibox-title">
  21. <h5>基础表单向导</h5>
  22. </div>
  23. <div class="ibox-content">
  24. <p>
  25. 这是一个简单的表单向导示例
  26. </p>
  27. <div id="wizard">
  28. <h1>第一步</h1>
  29. <div class="step-content">
  30. <div class="text-center m-t-md">
  31. <h2>第一步</h2>
  32. <p>
  33. 这是第一步的内容
  34. </p>
  35. </div>
  36. </div>
  37. <h1>第二步</h1>
  38. <div class="step-content">
  39. <div class="text-center m-t-md">
  40. <h2>第二步</h2>
  41. <p>
  42. 这是第二步的内容
  43. </p>
  44. </div>
  45. </div>
  46. <h1>第三步</h1>
  47. <div class="step-content">
  48. <div class="text-center m-t-md">
  49. <h2>第三步</h2>
  50. <p>
  51. 这是第三步的内容
  52. </p>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="row">
  61. <div class="col-sm-12">
  62. <div class="ibox">
  63. <div class="ibox-title">
  64. <h5>带验证的表单向导</h5>
  65. </div>
  66. <div class="ibox-content">
  67. <h2>
  68. 带验证的表单向导
  69. </h2>
  70. <p>
  71. 下面这个示例展示了如何在表单向导中使用 jQuery Validation 插件
  72. </p>
  73. <form id="form" action="http://www.zi-han.net/theme/hplus/form_wizard.html#" class="wizard-big">
  74. <h1>账户</h1>
  75. <fieldset>
  76. <h2>账户信息</h2>
  77. <div class="row">
  78. <div class="col-sm-8">
  79. <div class="form-group">
  80. <label>用户名 *</label>
  81. <input id="userName" name="userName" type="text" class="form-control required">
  82. </div>
  83. <div class="form-group">
  84. <label>密码 *</label>
  85. <input id="password" name="password" type="text" class="form-control required">
  86. </div>
  87. <div class="form-group">
  88. <label>确认密码 *</label>
  89. <input id="confirm" name="confirm" type="text" class="form-control required">
  90. </div>
  91. </div>
  92. <div class="col-sm-4">
  93. <div class="text-center">
  94. <div style="margin-top: 20px">
  95. <i class="fa fa-sign-in" style="font-size: 180px;color: #e5e5e5 "></i>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </fieldset>
  101. <h1>个人资料</h1>
  102. <fieldset>
  103. <h2>个人资料信息</h2>
  104. <div class="row">
  105. <div class="col-sm-6">
  106. <div class="form-group">
  107. <label>姓名 *</label>
  108. <input id="name" name="name" type="text" class="form-control required">
  109. </div>
  110. </div>
  111. <div class="col-sm-6">
  112. <div class="form-group">
  113. <label>Email *</label>
  114. <input id="email" name="email" type="text" class="form-control required email">
  115. </div>
  116. <div class="form-group">
  117. <label>地址 *</label>
  118. <input id="address" name="address" type="text" class="form-control">
  119. </div>
  120. </div>
  121. </div>
  122. </fieldset>
  123. <h1>警告</h1>
  124. <fieldset>
  125. <div class="text-center" style="margin-top: 120px">
  126. <h2>你是火星人 :-)</h2>
  127. </div>
  128. </fieldset>
  129. <h1>完成</h1>
  130. <fieldset>
  131. <h2>条款</h2>
  132. <input id="acceptTerms" name="acceptTerms" type="checkbox" class="required">
  133. <label for="acceptTerms">我同意注册条款</label>
  134. </fieldset>
  135. </form>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. <th:block th:include="include :: footer" />
  142. <th:block th:include="include :: jquery-steps-js" />
  143. <script>
  144. $(document).ready(function () {
  145. $("#wizard").steps();
  146. $("#form").steps({
  147. bodyTag: "fieldset", onStepChanging: function (event, currentIndex, newIndex) {
  148. if (currentIndex > newIndex) {
  149. return true
  150. }
  151. if (newIndex === 3 && Number($("#age").val()) < 18) {
  152. return false
  153. }
  154. var form = $(this);
  155. if (currentIndex < newIndex) {
  156. $(".body:eq(" + newIndex + ") label.error", form).remove();
  157. $(".body:eq(" + newIndex + ") .error", form).removeClass("error")
  158. }
  159. form.validate().settings.ignore = ":disabled,:hidden";
  160. return form.valid()
  161. }, onStepChanged: function (event, currentIndex, priorIndex) {
  162. if (currentIndex === 2 && Number($("#age").val()) >= 18) {
  163. $(this).steps("next")
  164. }
  165. if (currentIndex === 2 && priorIndex === 3) {
  166. $(this).steps("previous")
  167. }
  168. }, onFinishing: function (event, currentIndex) {
  169. var form = $(this);
  170. form.validate().settings.ignore = ":disabled";
  171. return form.valid()
  172. }, onFinished: function (event, currentIndex) {
  173. var form = $(this);
  174. form.submit()
  175. }
  176. }).validate({
  177. errorPlacement: function (error, element) {
  178. element.before(error)
  179. }, rules: {confirm: {equalTo: "#password"}}
  180. })
  181. });
  182. </script>
  183. </body>
  184. </html>