New Line in Textarea to be converted to <br/>
There's a lot of threads here about converting br/> or preserving newlines across different languages, but not many regarding textarea.
I have this script:
var boxText = "";
$("textarea.BoxText").live('dblclick', function () {
boxText = $(this).val().replace(/ /g, "<br/>");
$(this).replaceWith( '<div class="BoxText">' + $(this).val() + '</div>' );
});
$("div.BoxText").live('dblclick', function () {
$(this).replaceWith( '<textarea form="HTML" class="BoxText">' + boxText + '</textarea>' );
});
I have a textarea element, editable. When the user double-clicks on it, it converts into a div. However, in a div, the newlines are not preserved. I would like to convert just the new lines into
, currently, all spaces are being c开发者_如何学Converted. I have a second script that converts it back to textarea, hence the variable for storing the string. I would need the 's to be reconverted into new lines as well.This may seem redundant, but i have a good reason for this.
This will replace line breaks to HTML break tags. The different combinations are to cover the different browsers/systems and how line breaks are interpreted.
$(this).val().replace(/\r\n|\r|\n/g,"<br />")
This will bring it back to new lines - also covering how different browsers interpret innerHTML.
boxText.replace(/<br\s?\/?>/g,"\n");
I don't know if this will work for you, but you can try it out
This one converts <br/>
to new line in textarea
$(this).val().split("<br/>").join("\n");
And this one converts it back
boxText.split("\n").join("<br/>");
This works for me
精彩评论