UNPKG

formvalidation

Version:

The best jQuery plugin to validate form fields. Support Bootstrap, Foundation, Pure, SemanticUI, UIKit and custom frameworks

106 lines (97 loc) 4.54 kB
describe('row option', function() { beforeEach(function() { $([ '<form id="groupForm" method="post" class="form-horizontal">', '<div class="form-group">', '<div class="firstNameGroup">', '<label class="col-sm-2 control-label">First name</label>', '<div class="col-sm-4">', '<input type="text" class="form-control" name="firstName" />', '</div>', '</div>', '<div class="lastNameGroup">', '<label class="col-sm-2 control-label">Last name</label>', '<div class="col-sm-4">', '<input type="text" class="form-control" name="lastName" data-fv-row=".lastNameGroup" />', '</div>', '</div>', '</div>', '<div class="form-group">', '<label class="col-sm-2 control-label">Username</label>', '<div class="col-sm-5">', '<input type="text" class="form-control" name="username" />', '</div>', '</div>', '</form>' ].join('')).appendTo('body'); $('#groupForm').formValidation({ fields: { firstName: { row: '.firstNameGroup', validators: { notEmpty: { message: 'The first name is required and cannot be empty' } } }, lastName: { validators: { notEmpty: { message: 'The last name is required and cannot be empty' } } }, username: { validators: { notEmpty: { message: 'The username is required and cannot be empty' }, stringLength: { min: 6, max: 30, message: 'The username must be more than 6 and less than 30 characters long' }, regexp: { regexp: /^[a-zA-Z0-9_\.]+$/, message: 'The username can only consist of alphabetical, number, dot and underscore' } } } } }); this.fv = $('#groupForm').data('formValidation'); this.$firstName = this.fv.getFieldElements('firstName'); this.$lastName = this.fv.getFieldElements('lastName'); this.$username = this.fv.getFieldElements('username'); }); afterEach(function() { $('#groupForm').formValidation('destroy').remove(); }); it('default', function() { this.$username.val('123@#$'); this.fv.validate(); expect(this.$username.parents('.form-group').hasClass('has-error')).toBeTruthy(); expect(this.$username.parents('.form-group').hasClass('has-success')).toEqual(false); this.fv.resetForm(); this.$username.val('validUser.Name'); this.fv.validate(); expect(this.$username.parents('.form-group').hasClass('has-success')).toBeTruthy(); expect(this.$username.parents('.form-group').hasClass('has-error')).toEqual(false); }); it('programmatically usage', function() { this.$firstName.val(''); this.fv.validate(); expect(this.$firstName.parents('.firstNameGroup').hasClass('has-error')).toBeTruthy(); expect(this.$firstName.parents('.firstNameGroup').hasClass('has-success')).toEqual(false); expect(this.$firstName.parents('.form-group').hasClass('has-error')).toEqual(false); }); it('declarative usage', function() { this.$firstName.val('First'); this.$lastName.val('Last'); this.fv.validate(); expect(this.$lastName.parents('.lastNameGroup').hasClass('has-success')).toBeTruthy(); expect(this.$lastName.parents('.lastNameGroup').hasClass('has-error')).toEqual(false); expect(this.$lastName.parents('.form-group').hasClass('has-success')).toEqual(false); expect(this.$lastName.parents('.form-group').hasClass('has-error')).toEqual(false); }); });