Jquery textarea的.val()不为';I don’我不把新台词考虑在内
jQuery中Jquery textarea的.val()不为';I don’我不把新台词考虑在内,jquery,html,textarea,newline,enter,Jquery,Html,Textarea,Newline,Enter,jQuery中的.val()属性对于新行似乎不起作用。我需要这个功能,因为文本区域意味着识别回车键并将其显示为预览,新行在tact中 然而,发生的情况显示在这把小提琴上:。将显示文本,但不显示在新行中 如何实现包含新行的预览,我知道这是可能的,因为它是在堆栈溢出后问题预览中实现的 谢谢 另外,我在网上看到了其他与此相关的链接,但他们都说让最终用户使用一些代码,这对我来说不是一个理想的方法。在最终用户不编写任何特定代码的情况下,我如何实现这一点,就像这里的问题预览一样,Enter在预览中正常工作。
的.val()
属性对于新行似乎不起作用。我需要这个功能,因为文本区域意味着识别回车键并将其显示为预览,新行在tact中
然而,发生的情况显示在这把小提琴上:。将显示文本,但不显示在新行中
如何实现包含新行的预览,我知道这是可能的,因为它是在堆栈溢出后问题预览中实现的
谢谢
另外,我在网上看到了其他与此相关的链接,但他们都说让最终用户使用一些代码,这对我来说不是一个理想的方法。在最终用户不编写任何特定代码的情况下,我如何实现这一点,就像这里的问题预览一样,Enter在预览中正常工作。这是一个CSS问题,而不是JavaScript问题。默认情况下,HTML压缩空白-这包括忽略换行符 添加到输出div
所有现代浏览器都支持这一点:这是CSS问题,而不是JavaScript问题。默认情况下,HTML压缩空白-这包括忽略换行符 添加到输出div
这在所有现代浏览器中都受支持:文本区域中强制的新行是
\n
s,文本区域以外的其他HTML标记将忽略这些。必须使用
在这些元素上强制换行
我建议您使用JavaScript来解决这个问题,而不是CSS,因为您已经依赖JavaScript了
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace(/\n/g, '<br />') );
});
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val().replace(/\n/g,“
”);
});
您可以在此处找到更新版本:文本区域中强制的新行是
\n
s,除文本区域外的其他HTML标记将忽略这些。必须使用
在这些元素上强制换行
我建议您使用JavaScript来解决这个问题,而不是CSS,因为您已经依赖JavaScript了
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace(/\n/g, '<br />') );
});
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val().replace(/\n/g,“
”);
});
您可以在此处找到更新的版本:尝试以下内容:
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace('\n', '<br/>') );
});
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val().replace('\n','
'));
});
在HTML中,默认情况下忽略空白
您还可以将
标记更改为
标记:
<pre id="output_div"></pre>
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace(/[\r\n]/g, "<br />") );
});
这也行。试试这样的方法:
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace('\n', '<br/>') );
});
function nl2br_js(myString) {
var regX = /\n/gi ;
s = new String(myString);
s = s.replace(regX, "<br /> \n");
return s;
}
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( nl2br_js($( this ).val()) );
});
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val().replace('\n','
'));
});
在HTML中,默认情况下忽略空白
您还可以将
标记更改为
标记:
<pre id="output_div"></pre>
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( $( this ).val().replace(/[\r\n]/g, "<br />") );
});
这也会起作用。$(“#监视的文本区域”).keyup(函数(){
function nl2br_js(myString) {
var regX = /\n/gi ;
s = new String(myString);
s = s.replace(regX, "<br /> \n");
return s;
}
$( "#watched_textarea" ).keyup( function() {
$( "#output_div" ).html( nl2br_js($( this ).val()) );
});
$(“#output_div”).html($(this).val().replace(/[\r\n]/g,“
”);
});
对于HTML输出,需要将新行字符替换为
标记
下面是一个演示:$(“#监视的文本区域”).keyup(函数(){
$(“#output_div”).html($(this).val().replace(/[\r\n]/g,“
”);
});
对于HTML输出,需要将新行字符替换为
标记
下面是一个演示:您的换行符输出非常完美,但HTML忽略了换行符:它需要
使用一个简单的换行符到br函数,如下所示:
var mailText = $('#mailbody').val().replace(/(\r\n|\n|\r)/gm, '%0D%0A');
函数nl2br_js(myString){
var regX=/\n/gi;
s=新字符串(myString);
s=s.replace(regX,“\n”); 返回s; } $(“#监视的_文本区域”).keyup(函数(){ $(“#output_div”).html(nl2br_js($(this.val()); }); 请点击此处:
这里的代码:您的换行符输出完美,但HTML忽略换行符:它需要
使用一个简单的换行符到br函数,如下所示:
var mailText = $('#mailbody').val().replace(/(\r\n|\n|\r)/gm, '%0D%0A');
函数nl2br_js(myString){
var regX=/\n/gi;
s=新字符串(myString);
s=s.replace(regX,“\n”); 返回s; } $(“#监视的_文本区域”).keyup(函数(){ $(“#output_div”).html(nl2br_js($(this.val()); }); 请点击此处: 此处的代码:如果
- 您没有在另一个页面中显示textarea的.val()(例如,将表单提交到Servlet并转发到另一个JSP)
- 在Javascript/JQuery中使用textarea的.val()作为URL编码的一部分(例如,mailto:body作为textarea内容)
<?php
//$rsquery[0] is array result from my database query
//$rsquery[0] = 1.1st Procedure \n2.2nd Procedure
//txtRisks is a textarea
//sample1
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}
//sample2
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "\\n", $string);
return $string;
}
echo "$('#txtRisks').val('".nl2br2($rsquery[0])."')";
?>
如果
- 您没有在另一个页面中显示textarea的.val()(例如,将表单提交到Servlet并转发到另一个JSP)
- 在Javascript/JQuery中使用textarea的.val()作为URL编码的一部分(例如,mailto:body作为textarea内容)
<?php
//$rsquery[0] is array result from my database query
//$rsquery[0] = 1.1st Procedure \n2.2nd Procedure
//txtRisks is a textarea
//sample1
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
return $string;
}
//sample2
function nl2br2($string) {
$string = str_replace(array("\r\n", "\r", "\n"), "\\n", $string);
return $string;
}
echo "$('#txtRisks').val('".nl2br2($rsquery[0])."')";
?>
有一个简单的解决方案:使用pre标记制作容器
<textarea></textarea>
<div></div>
<button>Encode</button>
测试
fdf
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val());
});
有一个简单的解决方案:在容器上做预标记
<textarea></textarea>
<div></div>
<button>Encode</button>
测试
fdf
$(“#监视的_文本区域”).keyup(函数(){
$(“#output_div”).html($(this.val());
});
我发现了一种使用jquery更方便的方法
样本代码
HTML
编码
JS
$(“按钮”)。单击(函数(){
var encoded=$('').text($('textarea').val()).html();//标签元素可以被任何元素替换,如div、span或else
$('div').html(e