date.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>BootstrapValidator demo</title>
  5. <link rel="stylesheet" href="../vendor/bootstrap/css/bootstrap.css"/>
  6. <link rel="stylesheet" href="../dist/css/bootstrapValidator.css"/>
  7. <script type="text/javascript" src="../vendor/jquery/jquery-1.10.2.min.js"></script>
  8. <script type="text/javascript" src="../vendor/bootstrap/js/bootstrap.min.js"></script>
  9. <script type="text/javascript" src="../dist/js/bootstrapValidator.js"></script>
  10. <!-- Support datetime picker plugin: http://eonasdan.github.io/bootstrap-datetimepicker/ -->
  11. <link rel="stylesheet" href="//eonasdan.github.io/bootstrap-datetimepicker/content/bootstrap-datetimepicker.css"/>
  12. <script type="text/javascript" src="//eonasdan.github.io/bootstrap-datetimepicker/scripts/moment.js"></script>
  13. <script type="text/javascript" src="//eonasdan.github.io/bootstrap-datetimepicker/scripts/bootstrap-datetimepicker.js"></script>
  14. <style type="text/css">
  15. /* Override to make the feedback icons shown properly */
  16. .form-horizontal .has-feedback .form-control-feedback {
  17. top: 0;
  18. right: -15px;
  19. }
  20. .form-horizontal .has-feedback .input-group .form-control-feedback {
  21. top: 0;
  22. right: -30px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="container">
  28. <div class="row">
  29. <!-- form: -->
  30. <section>
  31. <div class="col-lg-8 col-lg-offset-2">
  32. <div class="page-header">
  33. <h2>Date validator</h2>
  34. </div>
  35. <form id="defaultForm" method="post" class="form-horizontal" action="target.php">
  36. <div class="form-group">
  37. <label class="col-lg-3 control-label">MM/DD/YYYY</label>
  38. <div class="col-lg-5">
  39. <input type="text" class="form-control" name="monthDayYear" />
  40. </div>
  41. </div>
  42. <div class="form-group">
  43. <label class="col-lg-3 control-label">YYYY-DD-MM</label>
  44. <div class="col-lg-5">
  45. <input type="text" class="form-control" name="yearDayMonth" />
  46. </div>
  47. </div>
  48. <div class="form-group">
  49. <label class="col-lg-3 control-label">MM/DD/YYYY h:m A</label>
  50. <div class="col-lg-5">
  51. <input type="text" class="form-control" name="monthDayYearTime" />
  52. </div>
  53. </div>
  54. <div class="form-group">
  55. <label class="col-lg-3 control-label">YYYY-DD-MM h:m A</label>
  56. <div class="col-lg-5">
  57. <input type="text" class="form-control" name="yearDayMonthTime" />
  58. </div>
  59. </div>
  60. <!-- datetime picker -->
  61. <div class="form-group">
  62. <label class="col-lg-3 control-label"><a href="http://eonasdan.github.io/bootstrap-datetimepicker/">DateTime Picker</a> (MM/DD/YYYY h:m A)</label>
  63. <div class="col-lg-5">
  64. <div class="input-group date" id="datetimePicker">
  65. <input type="text" class="form-control" name="datetimePicker" />
  66. <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
  67. </div>
  68. <span class="help-block">Choose a leap year</span>
  69. </div>
  70. </div>
  71. <div class="form-group">
  72. <div class="col-lg-9 col-lg-offset-3">
  73. <button type="submit" class="btn btn-primary">Submit</button>
  74. </div>
  75. </div>
  76. </form>
  77. </div>
  78. </section>
  79. <!-- :form -->
  80. </div>
  81. </div>
  82. <script type="text/javascript">
  83. $(document).ready(function() {
  84. $('#datetimePicker').datetimepicker();
  85. $('#defaultForm').bootstrapValidator({
  86. message: 'This value is not valid',
  87. feedbackIcons: {
  88. valid: 'glyphicon glyphicon-ok',
  89. invalid: 'glyphicon glyphicon-remove',
  90. validating: 'glyphicon glyphicon-refresh'
  91. },
  92. fields: {
  93. monthDayYear: {
  94. validators: {
  95. date: {
  96. format: 'MM/DD/YYYY'
  97. }
  98. }
  99. },
  100. yearDayMonth: {
  101. validators: {
  102. date: {
  103. format: 'YYYY-DD-MM'
  104. }
  105. }
  106. },
  107. monthDayYearTime: {
  108. validators: {
  109. date: {
  110. format: 'MM/DD/YYYY h:m A'
  111. }
  112. }
  113. },
  114. yearDayMonthTime: {
  115. validators: {
  116. date: {
  117. format: 'YYYY-DD-MM h:m A'
  118. }
  119. }
  120. },
  121. datetimePicker: {
  122. validators: {
  123. date: {
  124. format: 'MM/DD/YYYY h:m A'
  125. },
  126. callback: {
  127. callback: function(value, validator) {
  128. // m is moment object
  129. var m = new moment(value, 'MM/DD/YYYY h:m A', true);
  130. if (!m.isValid()) {
  131. return false;
  132. }
  133. var year = m.years();
  134. return (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0));
  135. },
  136. message: 'Chosen year is not a leap one'
  137. }
  138. }
  139. }
  140. }
  141. });
  142. $('#datetimePicker').on('dp.change', function(e) {
  143. // Validate the date when user change it
  144. $('#defaultForm')
  145. .data('bootstrapValidator') // Get the bootstrapValidator instance
  146. .setNotValidated('datetimePicker') // Mark the field as not validated, so it'll be re-validated when the user change date
  147. .validateField('datetimePicker'); // Validate the field
  148. });
  149. });
  150. </script>
  151. </body>
  152. </html>