2015-10-06 66 views
0

我使用jQuery/ajax在点击后打印文本。但是当文本包含换行符时,此操作会导致错误。为什么用ajax打印包含换行符的文本会导致错误?

@model.text = "line 
       another line" 


<!-- ERB --> 

<script type="text/javascript"> 
    $("#click-to-show%>").click(function() { 
    $("#text-wrapper").html("<%= @model.text %>"); 
    }); 
</script> 

我该如何避免这种情况?

回答

1

JavaScript不允许字符串中出现文字换行符。 更改您的代码为@model.text = "line\\nanother line"

顺便说一句,这是不正确的AJAX。你没有做异步请求。

通过适当的AJAX,你有一个单独的页面只是打印出来的数据,是这样的:

@model.text = "line 
       another line" 
<!-- ERB --> 
<%= @model.text %> 

而原始文件中:

<script type="text/javascript"> 
    $("#click-to-show%>").click(function() { 
    $.get('URL-TO-THAT-SEPEARTE-PAGE', function(result) { 
     $("#text-wrapper").html(result); 
    }) 
    }); 
</script> 
+0

如果它在评论部分,如何我可以处理输入文字换行符的用户吗? –

+0

@JeffCaros您应该在写入数据库之前或演示之前预处理用户提交的文本。 – TwilightSun

+0

像使用正则表达式来替换换行符“// n”? –

相关问题