2

我有一个文本区域

<textarea id="id-textarea-readme" wrap="hard"></textarea>

效果很好,直到有人在“记事本”中写下他的文本并通过 c&p 将其放在那里,单词被正确包装但没有“额外”换行符(这是“硬”的目的)

是否有任何解决方法可以使这项工作?任何 JS 或触发换行符的技巧?

4

2 回答 2

1

wrap=hard属性是非标准的,并且不能在浏览器中一致地工作。修改设计,使您不需要依赖此类客户端操作。Textarea 元素应该会产生实际的用户输入,当用户实际按 Enter 时包含换行符。如果您需要拆分长行以进行进一步处理,请在服务器端进行。

在我的测试中,IE 甚至可以在复制和粘贴中进行换行。另一方面,Firefox 仅在空格处换行时才引入硬换行符,而不是在“单词”内换行时才引入硬换行符,因此对于cols=5,输入 0123456789(无论是直接还是复制粘贴)显示为两行,但作为一个发送行,而 01234 56789 作为两行发送。我希望也能找到其他浏览器不兼容的地方。

于 2012-04-27T21:16:06.177 回答
0

复制和粘贴问题可能来自本机操作系统换行/返回/换行问题。

您可以只听文本区域 DOM 元素上的更改或粘贴并使用 javascript 解析吗?那将是我的概念猜测,这是 jquery 中的一个通用示例:

$("textarea").on("change", function(event){
    $this.replace(/\n\r?/g, '\n');
});
于 2012-06-09T01:11:59.413 回答