From f79e92c14a35ca8fd50d9c61fac3d94ddd489396 Mon Sep 17 00:00:00 2001 From: vitalets <noginsk@rambler.ru> Date: Thu, 6 Dec 2012 22:36:58 +0400 Subject: [PATCH] fix address value2html --- src/element/editable-element.js | 11 ++++++----- src/inputs-ext/address/address.js | 12 +++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/element/editable-element.js b/src/element/editable-element.js index 70c3870..1a20c7b 100644 --- a/src/element/editable-element.js +++ b/src/element/editable-element.js @@ -558,10 +558,10 @@ Makes editable any HTML element on the page. Applied as jQuery method. **/ value: null, /** - Callback to perform custom displaying of value in element's text. - If <code>null</code>, default input's value2html() will be called. - If <code>false</code>, no displaying methods will be called, element's text will no change. - Runs under element's scope. + Callback to perform custom displaying of value in element's text. + If <code>null</code>, default input's value2html() will be called. + If <code>false</code>, no displaying methods will be called, element's text will no change. + Runs under element's scope. Second parameter __sourceData__ is passed for inputs with source (select, checklist). @property display @@ -570,7 +570,8 @@ Makes editable any HTML element on the page. Applied as jQuery method. @since 1.2.0 @example display: function(value, sourceData) { - $(this).html('<b>'+value+'</b>'); + var escapedValue = $('<div>').text(value).html(); + $(this).html('<b>'+escapedValue+'</b>'); } **/ display: null diff --git a/src/inputs-ext/address/address.js b/src/inputs-ext/address/address.js index 31b862e..3050570 100644 --- a/src/inputs-ext/address/address.js +++ b/src/inputs-ext/address/address.js @@ -31,14 +31,16 @@ $(function(){ $.extend(Address.prototype, { render: function() { Address.superclass.render.call(this); - - // this.$input. }, - + //standard way to show value in element. Used only if display option not defined. value2html: function(value, element) { - var html = value.city + ', ' + value.street + ' st., bld. ' + value.building; - $(element).text(html); + if(!value) { + $(element).empty(); + return; + } + var html = $('<div>').text(value.city).html() + ', ' + $('<div>').text(value.street).html() + ' st., bld. ' + $('<div>').text(value.building).html(); + $(element).html(html); }, html2value: function(html) {