autoFocus.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. describe('autoFocus', function() {
  2. beforeEach(function() {
  3. $([
  4. '<form class="form-horizontal" id="autoFocusForm">',
  5. '<div class="form-group">',
  6. '<input type="text" name="username" required />',
  7. '</div>',
  8. '<div class="form-group">',
  9. '<input type="text" name="email" required data-bv-emailaddress />',
  10. '</div>',
  11. '<div class="form-group">',
  12. '<button type="submit" id="submitButton">Submit</button>',
  13. '</div>',
  14. '</form>'
  15. ].join('')).appendTo('body');
  16. this.bv = $('#autoFocusForm')
  17. .bootstrapValidator()
  18. .submit(function(e) {
  19. e.preventDefault();
  20. })
  21. .data('bootstrapValidator');
  22. this.$username = this.bv.getFieldElements('username');
  23. this.$email = this.bv.getFieldElements('email');
  24. });
  25. afterEach(function() {
  26. $('#autoFocusForm').bootstrapValidator('destroy').remove();
  27. });
  28. it('default option (autoFocus=true)', function() {
  29. $('#submitButton').click();
  30. expect(this.$username.is(':focus')).toBeTruthy();
  31. expect($(document.activeElement).attr('name')).toEqual('username');
  32. this.bv.resetForm();
  33. this.$username.val('user_name');
  34. this.$email.val('');
  35. $('#submitButton').click();
  36. expect(this.$email.is(':focus')).toBeTruthy();
  37. expect($(document.activeElement).attr('name')).toEqual('email');
  38. });
  39. it('set autoFocus=false for form', function() {
  40. $('#autoFocusForm')
  41. .bootstrapValidator('destroy')
  42. .bootstrapValidator({
  43. autoFocus: false
  44. });
  45. this.$username.val('');
  46. this.$email.val('invalid#email');
  47. $('#submitButton').click();
  48. expect(this.$username.is(':focus')).toBeFalsy();
  49. expect(this.$email.is(':focus')).toBeFalsy();
  50. });
  51. it('set autoFocus=false for all fields', function() {
  52. this.bv
  53. .addField('username', {
  54. autoFocus: false
  55. })
  56. .addField('email', {
  57. autoFocus: false
  58. });
  59. this.$username.val('user_name');
  60. this.$email.val('invalid#email');
  61. $('#submitButton').click();
  62. expect(this.$username.is(':focus')).toBeFalsy();
  63. expect(this.$email.is(':focus')).toBeFalsy();
  64. });
  65. it('set different autoFocus value for fields', function() {
  66. this.bv
  67. .addField('username', {
  68. autoFocus: false
  69. })
  70. .addField('email', {
  71. autoFocus: true
  72. });
  73. this.$username.val('');
  74. this.$email.val('invalid_email');
  75. $('#submitButton').click();
  76. expect(this.$username.is(':focus')).toBeFalsy();
  77. expect(this.$email.is(':focus')).toBeTruthy();
  78. expect($(document.activeElement).attr('name')).toEqual('email');
  79. });
  80. });