1 /** 2 * @author Gillis Haasnoot <gillis.haasnoot@gmail.com> 3 * @package Banana.Controls 4 * @summary Required field validator 5 */ 6 7 goog.provide('Banana.Controls.Decorators.RequiredFieldValidator'); 8 9 goog.require('Banana.Controls.Decorators.Validator'); 10 11 /** @namespace Banana.Controls.Decorators.RequiredFieldValidator */ 12 namespace('Banana.Controls.Decorators').RequiredFieldValidator = Banana.Controls.Decorators.Validator.extend( 13 /** @lends Banana.Controls.Decorators.RequiredFieldValidator.prototype */ 14 { 15 /** 16 * Creates a required field validator. All controls which are validated should supply data in 17 * string, array or object format. empty string or empty array will not pass the validation 18 * 19 * @param {Banana.Controls.InputControl} controlToValidate 20 * @constructs 21 * @extends Banana.Controls.Decorators.Validator 22 */ 23 init : function(controlToValidate) 24 { 25 this._super(controlToValidate); 26 this.setInfoText('Field required'); 27 }, 28 29 /** 30 * @override 31 * @param {mixed} data to validate 32 * @return {Boolean} 33 */ 34 validateData : function(data) 35 { 36 if (data instanceof Array) 37 { 38 if (data.length > 0) 39 { 40 return true; 41 } 42 43 return false; 44 } 45 46 if (data == null || data == undefined) 47 { 48 return false; 49 } 50 51 data = data.toString(); 52 53 if (/^\s*$/.test(data)) return false; 54 55 return true; 56 } 57 });