textarea换行 如何处理textarea换行
各位朋友,你是否对textarea换行和如何处理textarea换行的相关问题感到好奇?别担心,我将为你揭示这些问题的答案,帮助你更好地理解和应用这些知识。让我们一起探索吧!
如何处理textarea换行
方法1:在textarea中增加属性wrap="hard"
方法2:设置 wrap="virtual",文本区会包含两行文本,并在单词"makes"后面换行。但是只有一行文本被传送到服务器:没有嵌入新行字符。
方法3:设置 wrap="physical",文本区会包含两行文本,并在单词"makes"后面换行,这时发送给服务器两行文本,单词"makes"后的新行字符将分隔这两行文本。
方法1测试过是可以的,方法2和方法3还未测试
附:
wrap属性定义输入内容大于文本域时显示的方式,可选值如下:
默认值是文本自动换行;当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
Off,用来避免文本换行,当输入的内容超过文本域右边界时,文本将向左滚动,必须用Return才能将插入点移到下一行;
Virtual,允许文本自动换行。当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
Physical,让文本换行,当数据被提交处理时换行符也将被一起提交处理。
textarea 如何控制自动换行
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseListener;
import java.awt.Event.*;
/**
*
*@author zy
*/
public class Main extends JFrame//implements MouseListener
{
static JTextField txt1= new JTextField();
static JTextField txt2= new JTextField();
static JButton but1= new JButton("开始执行");
static JButton but2= new JButton("开始执行");
static JLabel la1= new JLabel("输入回收的块号");
static JLabel la2= new JLabel("盘块分配演示");
static JLabel la3= new JLabel("输入分配所需的块数");
static JLabel la4= new JLabel("盘块回收演示");
static JLabel la5= new JLabel("盘块未进行分配,回收前的使用情况");
static JLabel la6= new JLabel("盘块执行操作后的情况");
static JTable ta1= new JTable(8, 6);
static JTable ta2= new JTable(16, 16);
static JLabel la8= new JLabel("盘块执行操作后的情况");
static TextArea te1=new TextArea("Hello", 4, 4,TextArea.SCROLLBARS_NONE);
static JFrame frm=new JFrame("位示图演示程序");
public static void main(String arg[])
{
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setBounds(0, 0, 300, 600);
frm.setVisible(true);
frm.setLayout(null);
frm.add(txt1);
frm.add(txt2);
frm.add(but1);
frm.add(but2);
frm.add(la1);
frm.add(la2);
frm.add(la3);
frm.add(la4);
frm.add(la5);
frm.add(la6);
frm.add(ta1);
frm.add(ta2);
frm.add(te1);
la2.setBounds(5, 5, 120, 20);
la3.setBounds(5, 20, 150, 20);
txt1.setBounds(5, 40, 40, 30);
but1.setBounds(50,40,100,30);
la4.setBounds(5,80,150,20);
la1.setBounds(5, 100, 150, 20);
txt2.setBounds(5, 125, 40, 30);
but2.setBounds(50, 125, 100, 30);
/*有疑问的一句话如果删除下面的一句话,那么其他的组件都能正常显示。否则TextArea的tel类将充满整个frame,其他的组件无法正常显示?为什么?有什么解决的办法?*/
te1.setBounds(10, 200, 50, 50);
}
}
将frm的布局设置为null就不会了.最后的一句不要删.否则为默认的布局将会把窗口填充满的.
如何在textarea文本输入区内实现换行
通常情况下,当用户在输入文本区域中键入文本后,浏览器会将它们按照键入时的状态发送给服务器。只有用户按下 Enter键的地方生成换行。
如果您希望启动自动换行功能(word wrapping),请将 wrap属性设置为 virtual或 physical。当用户键入的一行文本长于文本区的宽度时,浏览器会自动将多余的文字挪到下一行,在文字中最近的那一点换行。
wrap="virtual"将实现文本区内的自动换行,以改善对用户的显示,但在传输给服务器时,文本只在用户按下 Enter键的地方进行换行,其他地方没有换行的效果。
wrap="physical"将实现文本区内的自动换行,并以这种形式传送给服务器,就像用户真的那样键入的。因为文本要以用户在文本区内看到的效果传输给服务器,因为使用自动换行是非常有用的方法。
如果把 wrap设置为 off,将得到默认的动作。
希望对你有点帮助。
㊣
textarea:进行文本换行
textarea内的换行便是以换行符的形式实现,换行符也能用于textarea
当我们尝试将\n用于一般div
eg: document.querySelector(".a").innerHTML="12\n1";
显示:
未显示换行,这是因为在默认情况下空白会被忽略,所以无论是文本里的空白、换行都会被当做一个空格处理,
若想显示空白,需添加属性white-space: pre;保留换行和空白或者pre-line保留换行,忽略空白
增添white-space: pre;显示:
这时候获取innerHTML,输出: 12 1,
/\n/.test(document.querySelector(".a").innerHTML)// true,
eg: document.querySelector(".a").innerHTML="1 2\n1";
显示:
通过审查元素,可以发现可编辑div自带white-space: pre;属性!因此文本空白和换行符都对它有效
而可编辑div内直接进行换行操作,换行又是如何实现的?
进行换行:
再输出innerHTML
1 2 1<div>11</div><div>111</div>
因此:对于可编辑div,换行符有效,但它本身的换行是通过div来实现的,这不同于textarea!
一般pre
对于一般pre,文本空格与换行符都有效,也自带white-space: pre;属性。
可编辑pre
类似于可编辑div,换行符有效,本身的换行通过增添div实现。
文章到此结束,希望我们对于textarea换行和如何处理textarea换行的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。