在textarea

时间:2015-06-02 10:08:33

标签: html css textarea line-breaks

我有一个带有textarea的表单,我希望在输出内容时保留用户输入的换行符。

例如,如果我在textarea中写道:

  

这是一个句子。这是另一个。还有一个。

     

这是一个新段落。这是一个新句子。这是另一个。

我想要相同的输出和

  

这是一个句子。这是另一个。还有一个。这是一个新的   段。这是一个新句子。这是另一个。

我怎样才能保留换行符?

5 个答案:

答案 0 :(得分:87)

通常你只需要添加

  • white-space: pre-line;将空白修剪为单个空格

  • white-space: pre-wrap;保留所有空格

到元素的样式(CSS),您希望使用换行符呈现文本。

答案 1 :(得分:6)

用户输入 保留的换行符,html和php都不会丢弃或改变任何内容。但是,html标记在呈现为可视化时使用不同的方式来编码换行符。 非常有很好的理由。所以你需要做的是"翻译"现有的行分为html样式换行符。

如何做到这一点取决于您正在使用的环境。通常,您必须将换行符代码(例如\n)转换为<br>代码。 php脚本语言为此提供了一个函数,例如:nl2br()

但请注意:这仅适用于文本呈现为html标记的情况。当您再次将文本输出到表单内的文本区域以允许更改它时,这将应用。在这种情况下,您必须保持原始换行符。

所以你通常做的是:你保存未收到的文本输入。当再次将该文本输出到客户端时,比如从之前已保存它的数据库中读取该文本后,您就会知道情况,文本将如何呈现。那就是你翻译或保留现有的换行符。

还可以对包含<pre>...</pre>标记的换行符的未更改文本进行编码,因此请将其标记为预先格式化。例如,这是在html页面中显示源代码时完成的。

答案 2 :(得分:1)

您可以这样做:

white-space: pre-wrap;
overflow-wrap: break-word;

答案 3 :(得分:0)

您将输出原样保留在textarea中。您将收到作为字符串输出的输入,该输出string(write to file)将该字符串添加textarea到输入字符串。

for eg.
<?php
$txt = $_POST["inputstr"];
$txt1 = "<textarea>". $txt ."</textarea>";
$file = fopen("file.html","a+");
fwrite($file, $txt1);
fclose($file);
?>

答案 4 :(得分:-1)

如果希望保留回车符,请将Java字符串中的字符返回到文件中。只需按照以下语句替换每个换行符(在Java中被识别为\ n)即可: tempQuery = tempQuery.replaceAll(“ \ n”,“ \ r \ n”);

这是一个代码示例,

    // Action Listener
    orderButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
            // When Execute button is pressed
            String tempQuery = textArea.getText();
            tempQuery = tempQuery.replaceAll("\n", "\r\n");
            try (PrintStream out = new PrintStream(new FileOutputStream("C:/Temp/tempQuery.html"))) {
                out.print(tempQuery);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(tempQuery);
        }

    });