textarea: 保留textarea中的换行,将源样式显示在页面

来源:互联网 发布:java final 变量 编辑:程序博客网 时间:2024/06/01 23:28

项目中有一个需求,就是保留textarea中的换行,在网页中按原格式显示。

由于textarea中的换行为“\r\n", 用js获取textarea中的内容保存到数据库中时,“\r\n"变成了空格。

当将数据库中的数据传递到html页面时,又会自动加上”\r\n“, 但是由于html能识别的换行符为”<br>".因此有必要对textarea中的字符串进行处理。


1.在存储到数据库之前,将“\r\n"替换为"<br>". 然后在保存到数据库中。

$("#save_btn").click(function(){    var val = $("textarea").val();    val = val.replace(new RegExp("\n", "gm"), "<br>");    $.ajax({    type: "post",    url: "SaveSuggestionAction",    data: { suggestion: val,    teacherId: $("#teacherId").text()},    dataType: "text",    success: function(){    $("#suggestion").html(val);    $("#suggestion").append($("<a href='javascript:suggest()'>  [编辑]</a>"));     $("textarea").html("");    $(".bottom_block").hide();        },    error: function(){    $(".bottom_block").hide();    }        });    });

2. 当从数据库获得数据后,在页面显示时设置escapeHtml="false"。 此时就可以保留正常的换行了
<s:property value="#request.teacher.checkSuggestion" escapeHtml="false"></s:property>


3. 如果我们需要将数据库中的这些字符串在textarea重新显示,并保持换行的格式。那么我们有需要将”<br>"重新转换为textarea能够识别的“\r\n”.

$.ajax({    type: "post",    url: "GetCheckSuggestionAction",    data: {teacherId: $("#teacherId").text()},    success:function(returnData){    returnData = returnData.replace(new RegExp("^\"|\"$", "gm"), ""); //去除双引号    returnData = returnData.replace(new RegExp("\\\\u003cbr\\\\u003e", "gm"), "\r\n"); //将换行转换为textarea里面能够识别的换行    $("textarea").val(returnData);     }    });




0 0
原创粉丝点击