简体   繁体   中英

Newline problem when writing to HTML using JavaScript

I'm using regular textbox as a text input where the users wrties their comments. I then use JQuery and JSON to send data to the server and then insert it into the database.

When I want to display this text I use jQuery to download it prepare HTML and display it in the browser, but there are no new lines.

How can I keep any newlines entered by the user so that they are displayed in the browser?

EDIT:

The problem is that when I do alert $('.detailsCommentContent').val() I can see line breaks in the alert window, but when I then pass it as a GET argument:

insertComment.aspx?id=10&content= " + $('.detailsCommentContent').val() "

then in the url there are no signs of newLine :(

就像这样回答: 保持格式在asp.net文本框中输入(回车,换行等)

theStringYouWantToFormat.Replace(char.ConvertFromUtf32(13),"<br/>")

Before writing out the HTML using javascript to the page, make sure to replace all the newlines with <br /> tags. Here is a simple extension for string that will allow you to do it using javascript ( source ):

String.prototype.NewlineToBR = function() {
    return this.replace( /\r\n|\r|\n/g, br || '');
}

Usage:

var htmlString = newlineString.NewlineToBR();

Then just insert the new string into you HTML.

where do you want to display the text? in a textarea or directly on the page?

if on the page you'll have to convert the newlines to <br/> tags when getting the text from the db and printing it to the page.

I beleive this is down to the encoding you are using. Difference between unicode and ascii or something similar. It's been a while since I worked on something like this but I think it boiled down to two options.

  1. match up the encoding on save and on load (we found that we had ascii on one and unicode on another).
  2. replace all new line character with an arbituary value when saving and swap it back when you load it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM