diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index f04e5aa..434cf0a 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -3,6 +3,7 @@ X-editable changelog
Version 1.4.5 wip
----------------------------
+[enh #78] allow html in editable content (vitalets)
[enh] update container position when datetimepicker viewMode changes (vitalets)
[enh #255] remove xxxView options from first level config of datetimepicker (vitalets)
[enh] if `display` defined as function call it on init (vitalets)
diff --git a/src/element/editable-element.js b/src/element/editable-element.js
index 077cef1..ddd44c6 100644
--- a/src/element/editable-element.js
+++ b/src/element/editable-element.js
@@ -265,7 +265,24 @@ Makes editable any HTML element on the page. Applied as jQuery method.
return;
}
- this.isEmpty = isEmpty !== undefined ? isEmpty : $.trim(this.$element.text()) === '';
+ /*
+ isEmpty may be set directly as param of method.
+ It is required when we enable/disable field and can't rely on content
+ as node content is text: "Empty" that is not empty %)
+ */
+ if(isEmpty !== undefined) {
+ this.isEmpty = isEmpty;
+ } else {
+ //detect empty
+ if($.trim(this.$element.html()) === '') {
+ this.isEmpty = true;
+ } else if($.trim(this.$element.text()) !== '') {
+ this.isEmpty = false;
+ } else {
+ //e.g. '
'
+ this.isEmpty = !this.$element.height() || !this.$element.width();
+ }
+ }
//emptytext shown only for enabled
if(!this.options.disabled) {
diff --git a/test/unit/text.js b/test/unit/text.js
index 490faaf..523f015 100644
--- a/test/unit/text.js
+++ b/test/unit/text.js
@@ -434,7 +434,28 @@ $(function () {
start();
}, timeout);
- });
+ });
+
+ test("'display' returning html only (img)", function () {
+ var c = 0,
+ html = '
',
+ html_br = '
',
+ e = $('0').appendTo('#qunit-fixture').editable({
+ display: function(value, response) {
+ $(this).html(c == 0 ? html : html_br);
+ }
+ });
+
+ equal(e.html(), html, 'html ok');
+
+ c = 1;
+ e.click()
+ var p = tip(e);
+ p.find('input').val(1);
+ p.find('form').submit();
+
+ equal(e.html(), $.fn.editable.defaults.emptytext, 'html br --> emptytext ok');
+ });
test("password", function () {
var v = '123', v1 = '456';