objetos objeto leer ejemplos ejemplo editable dinamico crear javascript jquery twitter-bootstrap x-editable

javascript - objeto - Tipo de campo personalizado editable en X que no respeta los valores predeterminados anulados



objetos json (1)

Es posible que tengas una versión antigua de x-editable. Puede encontrar la versión en el enlace que usa para incluirla en el <head> de su documento.

Solo la versión 1.1.1 y posteriores son compatibles con el comando showbuttons.

Si este no es el problema, hágamelo saber y veré qué más puedo averiguar.

Tengo un tipo de entrada editable en x personalizado para ingresar una ciudad y seleccionar un país que se muestre así:

Observe los botones en la parte inferior; Esto es así porque el código de inicialización contiene showbuttons: ''bottom'' :

$(''#location'').editable({ url: ''/post'', title: ''Enter city and country'', showbuttons: ''bottom'', value: { city: "Napier", country: "nz" }, sourceCountry: [ {value: "af", text: "Afghanistan"}, ... {value: "zw", text: "Zimbabwe"} ] });

Pero para este widget no tiene sentido renderizar los botones del lado; así que quería que los botones estuvieran allí por defecto; Por lo tanto, intenté establecer el valor predeterminado para este tipo editable:

Location.defaults = $.extend({}, $.fn.editabletypes.abstractinput.defaults, { tpl: '''' + ''<div class="editable-location">'' + ''<label><span>City: </span><input type="text" name="city"></label>'' + ''</div>'' + ''<div class="editable-location">'' + ''<label><span>Country: </span><select name="country"></select></label>'' + ''</div>'', inputclass: '''', showbuttons: ''bottom'', sourceCountry: [] });

Pero la tecla showbuttons está siendo ignorada; Los otros están aplicando bien, pero no esta. Entonces, ¿cómo puedo configurar el valor predeterminado para un tipo editable?

Aquí está el código editable,

(function ($) { "use strict"; var Location = function (options) { this.sourceCountryData = options.sourceCountry; this.init(''location'', options, Location.defaults); }; //inherit from Abstract input $.fn.editableutils.inherit(Location, $.fn.editabletypes.abstractinput); $.extend(Location.prototype, { render: function () { this.$input = this.$tpl.find(''input''); this.$list = this.$tpl.find(''select''); this.$list.empty(); var fillItems = function ($el, data) { if ($.isArray(data)) { for (var i = 0; i < data.length; i++) { if (data[i].children) { $el.append(fillItems($(''<optgroup>'', { label: data[i].text }), data[i].children)); } else { $el.append($(''<option>'', { value: data[i].value }).text(data[i].text)); } } } return $el; }; fillItems(this.$list, this.sourceCountryData); }, value2html: function (value, element) { if (!value) { $(element).empty(); return; } var countryText = value.country; $.each(this.sourceCountryData, function (i, v) { if (v.value == countryText) { countryText = v.text.toUpperCase(); } }); var html = $(''<div>'').text(value.city).html() + '' / '' + $(''<div>'').text(countryText).html(); $(element).html(html); }, html2value: function (html) { return null; }, value2str: function (value) { var str = ''''; if (value) { for (var k in value) { str = str + k + '':'' + value[k] + '';''; } } return str; }, str2value: function (str) { return str; }, value2input: function (value) { if (!value) { return; } this.$input.filter(''[name="city"]'').val(value.city); this.$list.val(value.country); }, input2value: function () { return { city: this.$input.filter(''[name="city"]'').val(), country: this.$list.val() }; }, activate: function () { this.$input.filter(''[name="city"]'').focus(); }, autosubmit: function () { this.$input.keydown(function (e) { if (e.which === 13) { $(this).closest(''form'').submit(); } }); } }); Location.defaults = $.extend({}, $.fn.editabletypes.abstractinput.defaults, { tpl: '''' + ''<div class="editable-location">'' + ''<label><span>City: </span><input type="text" name="city"></label>'' + ''</div>'' + ''<div class="editable-location">'' + ''<label><span>Country: </span><select name="country"></select></label>'' + ''</div>'', inputclass: '''', showbuttons: ''bottom'', //WHY ISN''T THIS WORKING!!! sourceCountry: [] }); $.fn.editabletypes.location = Location; }(window.jQuery));