diff --git a/src/inputs-ext/address/address.js b/src/inputs-ext/address/address.js index fa62147..22b7902 100644 --- a/src/inputs-ext/address/address.js +++ b/src/inputs-ext/address/address.js @@ -26,14 +26,24 @@ $(function(){ this.init('address', options, Address.defaults); }; + //inherit from Abstract input $.fn.editableutils.inherit(Address, $.fn.editabletypes.abstract); $.extend(Address.prototype, { - render: function() { - Address.superclass.render.call(this); - }, + /** + Renders input from tpl + + @method render() + **/ + render: function() { + Address.superclass.render.call(this); + }, - //standard way to show value in element. Used only if display option not defined. + /** + Default method to show value in element. Can be overwritten by display option. + + @method value2html(value, element) + **/ value2html: function(value, element) { if(!value) { $(element).empty(); @@ -43,12 +53,17 @@ $(function(){ $(element).html(html); }, + /** + Gets value from element's html + + @method html2value(html) + **/ html2value: function(html) { /* you may write parsing method to get value by element's html e.g. "Moscow, st. Lenina, bld. 15" => {city: "Moscow", street: "Lenina", building: "15"} - but for complex structures I do not recommend do that. - Better always set value directly via javascript, e.g. + but for complex structures it's not recommended. + Better set value directly via javascript, e.g. editable({ value: { city: "Moscow", @@ -60,10 +75,12 @@ $(function(){ return null; }, - /* - converts value to string. + /** + Converts value to string. It is used in internal comparing (not for sending to server). - */ + + @method value2str(value) + **/ value2str: function(value) { var str = ''; if(value) { @@ -75,19 +92,35 @@ $(function(){ }, /* - this is mainly for parsing value defined in data-value attribute. - If you will always set value by javascript, no need to overwrite it + Converts string to value. Used for reading value from 'data-value' attribute. + + @method str2value(str) */ str2value: function(str) { + /* + this is mainly for parsing value defined in data-value attribute. + If you will always set value by javascript, no need to overwrite it + */ return str; }, + /** + Sets value of input. + + @method value2input(value) + @param {mixed} value + **/ value2input: function(value) { this.$input.find('input[name="city"]').val(value.city); this.$input.find('input[name="street"]').val(value.street); this.$input.find('input[name="building"]').val(value.building); }, + /** + Returns value of input. + + @method input2value() + **/ input2value: function() { return { city: this.$input.find('input[name="city"]').val(), @@ -95,11 +128,28 @@ $(function(){ building: this.$input.find('input[name="building"]').val() }; }, + + /** + Activates input: sets focus on the first field. + @method activate() + **/ activate: function() { - //set focus on city this.$input.find('input[name="city"]').focus(); - } + }, + + /** + Attaches handler to submit form in case of 'showbuttons=false' mode + + @method autosubmit() + **/ + autosubmit: function() { + this.$input.find('input[type="text"]').keydown(function (e) { + if (e.which === 13) { + $(this).closest('form').submit(); + } + }); + } }); Address.defaults = $.extend({}, $.fn.editabletypes.abstract.defaults, { diff --git a/src/inputs/abstract.js b/src/inputs/abstract.js index 40fcb0c..03fa7f8 100644 --- a/src/inputs/abstract.js +++ b/src/inputs/abstract.js @@ -26,7 +26,7 @@ To create your own input you should inherit from this class. }, /** - Renders input. Can return jQuery deferred object. + Renders input from tpl. Can return jQuery deferred object. @method render() **/