From 1159e26e341666228fb90f04361d7581125ed14c Mon Sep 17 00:00:00 2001 From: Jean-Marc Fontaine <jmfontaine@profilsoft.com> Date: Thu, 13 Dec 2012 15:00:16 +0100 Subject: [PATCH] Fix handling of newlines in textarea input --- src/inputs/textarea.js | 8 +++++++- test/unit/textarea.js | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) 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",