(function($) { var Alpaca = $.alpaca; Alpaca.Fields.LowerCaseField = Alpaca.Fields.TextField.extend( /** * @lends Alpaca.Fields.LowerCaseField.prototype */ { /** * @see Alpaca.Fields.TextField#getFieldType */ getFieldType: function() { return "lowercase"; }, /** * @see Alpaca.Fields.TextField#setup */ setup: function() { var self = this; this.base(); if (this.data) { this.data = this.data.toLowerCase(); } }, /** * @see Alpaca.Fields.TextField#setValue */ setValue: function(val) { if (!val) { return this.base(val); } var lowerValue = val.toLowerCase(); if (lowerValue != this.getValue()) // jshint ignore:line { this.base(lowerValue); } }, /** * @see Alpaca.ControlField#onKeyPress */ onKeyPress: function(e) { this.base(e); var _this = this; Alpaca.later(25, this, function() { var v = _this.getValue(); _this.setValue(v); }); } /* builder_helpers */ , /** * @see Alpaca.Fields.TextField#getTitle */ getTitle: function() { return "Lowercase Text"; }, /** * @see Alpaca.Fields.TextField#getDescription */ getDescription: function() { return "Text field for lowercase text."; } /* end_builder_helpers */ }); Alpaca.registerFieldClass("lowercase", Alpaca.Fields.LowerCaseField); Alpaca.registerDefaultFormatFieldMapping("lowercase", "lowercase"); })(jQuery);