X-editable自定义字段类型不遵守重写的默认值

我有一个自定义x可编辑的输入类型,用于输入城市并选择像这样呈现的国家/地区:
在此处输入图像描述

注意底部的按钮; 这是因为初始化代码包含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"} ] }); 

但对于这个小部件,在侧面渲染按钮是没有意义的; 所以我希望按钮默认存在; 因此,我尝试为此可编辑类型设置默认值:

 Location.defaults = $.extend({}, $.fn.editabletypes.abstractinput.defaults, { tpl: '' + '
' + '' + '
' + '
' + '' + '
', inputclass: '', showbuttons: 'bottom', sourceCountry: [] });

但是showbuttons键被忽略了; 其他人正在申请罚款,但不是这个。 那么如何设置可编辑类型的默认值?

这是可编辑的代码,

 (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($('', { label: data[i].text }), data[i].children)); } else { $el.append($('', { 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 = $('
').text(value.city).html() + ' / ' + $('
').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: '' + '
' + '' + '
' + '
' + '' + '
', inputclass: '', showbuttons: 'bottom', //WHY ISN'T THIS WORKING!!! sourceCountry: [] }); $.fn.editabletypes.location = Location; }(window.jQuery));

您可能拥有旧版x-editable。 您可以在链接中找到该版本,以将其包含在文档的中。

只有1.1.1及更高版本支持showbuttons命令。

如果这不是问题,请告诉我,我会看到还有什么可以弄明白的。