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

项目中有一个需求,就是保留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); 
    			}
    		});




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值