Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery textarea的.val()不为';I don’我不把新台词考虑在内_Jquery_Html_Textarea_Newline_Enter - Fatal编程技术网

Jquery textarea的.val()不为';I don’我不把新台词考虑在内

Jquery textarea的.val()不为';I don’我不把新台词考虑在内,jquery,html,textarea,newline,enter,Jquery,Html,Textarea,Newline,Enter,jQuery中的.val()属性对于新行似乎不起作用。我需要这个功能,因为文本区域意味着识别回车键并将其显示为预览,新行在tact中 然而,发生的情况显示在这把小提琴上:。将显示文本,但不显示在新行中 如何实现包含新行的预览,我知道这是可能的,因为它是在堆栈溢出后问题预览中实现的 谢谢 另外,我在网上看到了其他与此相关的链接,但他们都说让最终用户使用一些代码,这对我来说不是一个理想的方法。在最终用户不编写任何特定代码的情况下,我如何实现这一点,就像这里的问题预览一样,Enter在预览中正常工作。

jQuery中
.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内容)

然后,您需要对textarea描述进行URL编码,如下所示:

<?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内容)

然后,您需要对textarea描述进行URL编码,如下所示:

<?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