dynamic.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. </head>
  11. <body>
  12. <div class="container">
  13. <div class="row">
  14. <!-- form: -->
  15. <section>
  16. <div class="col-lg-8 col-lg-offset-2">
  17. <div class="page-header">
  18. <h2>Dynamic fields</h2>
  19. </div>
  20. <form id="defaultForm" method="post" class="form-horizontal" action="target.php">
  21. <div class="form-group">
  22. <label class="col-lg-3 control-label">Question</label>
  23. <div class="col-lg-5">
  24. <input class="form-control" type="text" name="question" />
  25. </div>
  26. </div>
  27. <div class="form-group">
  28. <label class="col-lg-3 control-label">Answers</label>
  29. <div class="col-lg-5">
  30. <input class="form-control" type="text" name="answers[]" />
  31. </div>
  32. <div class="col-lg-2">
  33. <button type="button" class="btn btn-default btn-sm addButton">Add</button>
  34. </div>
  35. </div>
  36. <div class="form-group hide" id="template">
  37. <div class="col-lg-offset-3 col-lg-5">
  38. <input class="form-control" type="text" name="answers[]" />
  39. </div>
  40. <div class="col-lg-2">
  41. <button type="button" class="btn btn-default btn-sm removeButton">Remove</button>
  42. </div>
  43. </div>
  44. <div class="form-group">
  45. <div class="col-lg-offset-3 col-lg-3">
  46. <button type="submit" class="btn btn-primary">Submit</button>
  47. </div>
  48. </div>
  49. </form>
  50. </div>
  51. </section>
  52. <!-- :form -->
  53. </div>
  54. </div>
  55. <script type="text/javascript">
  56. $(document).ready(function() {
  57. // Add button click handler
  58. $('.addButton').on('click', function() {
  59. var $row = $('#template').clone().removeAttr('id').insertBefore($('#template')).removeClass('hide');
  60. var $answer = $row.find('[name="answers[]"]');
  61. $('#defaultForm').bootstrapValidator('addFieldElement', $answer);
  62. $row.on('click', '.removeButton', function(e) {
  63. $row.remove();
  64. $('#defaultForm').bootstrapValidator('removeFieldElement', $answer);
  65. });
  66. });
  67. $('#defaultForm').bootstrapValidator({
  68. message: 'This value is not valid',
  69. feedbackIcons: {
  70. valid: 'glyphicon glyphicon-ok',
  71. invalid: 'glyphicon glyphicon-remove',
  72. validating: 'glyphicon glyphicon-refresh'
  73. },
  74. fields: {
  75. question: {
  76. validators: {
  77. notEmpty: {
  78. message: 'The gender is required'
  79. }
  80. }
  81. },
  82. 'answers[]': {
  83. validators: {
  84. notEmpty: {
  85. message: 'The answer is required'
  86. }
  87. }
  88. }
  89. }
  90. });
  91. });
  92. </script>
  93. </body>
  94. </html>