diff --git a/src/inputs/textarea.js b/src/inputs/textarea.js index 6a853b3..e0f66d1 100644 --- a/src/inputs/textarea.js +++ b/src/inputs/textarea.js @@ -53,7 +53,13 @@ $(function(){ } var lines = html.split(/<br\s*\/?>/i); for (var i = 0; i < lines.length; i++) { - lines[i] = $('<div>').html(lines[i]).text(); + var text = $('<div>').html(lines[i]).text(); + + // Remove newline characters (\n) to avoid them being converted by value2html() method + // thus adding extra <br> tags + text = text.replace(new RegExp(String.fromCharCode(10), 'g'), ''); + + lines[i] = text; } return lines.join("\n"); }, diff --git a/test/unit/textarea.js b/test/unit/textarea.js index 5784189..6b8d526 100644 --- a/test/unit/textarea.js +++ b/test/unit/textarea.js @@ -58,7 +58,7 @@ $(function () { }) asyncTest("should replace <br> with newline (on show) and back (on save)", function () { - var v = '12<br>3<i>4<br />56', + var v = '12<br>\n3<i>4<br />56', e = $('<a href="#" data-type="textarea" data-pk="1" data-url="post.php">'+v+'</a>').appendTo(fx).editable(), v1 = '12\n3<i>4\n56', vnew = "12\n3<b>4\n56\n\n78",