Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 如何限制换行符之间的字符数?_Jquery_Html - Fatal编程技术网

Jquery 如何限制换行符之间的字符数?

Jquery 如何限制换行符之间的字符数?,jquery,html,Jquery,Html,我有一个文本区域,每行应该只有50个字符。我找到了一种在用户键入50个字符后自动添加换行符的方法 $('#textarea').keyup(function (e) { if ($(this).val().length % 50 == 0 && $(this).val().length > 0) { $(this).val($(this).val() + '\n'); } }) 但这只是在每50个字符后添加一个换行符,并没有真正的帮助。它也不

我有一个文本区域,每行应该只有50个字符。我找到了一种在用户键入50个字符后自动添加换行符的方法

$('#textarea').keyup(function (e) {
    if ($(this).val().length % 50 == 0 && $(this).val().length > 0) {
        $(this).val($(this).val() + '\n');
   }
})

但这只是在每50个字符后添加一个换行符,并没有真正的帮助。它也不包括粘贴到文本区域的文本。如何简单地防止textarea中的每个'\n'之间出现超过50个字符?换句话说,我希望每行有50个字符的固定限制。

在文本区域中,您是否已将COL设置为50?应该是这样的:

<!DOCTYPE html>
<html>
<head>
<title>autoresizing textarea</title>
<style type="text/css">
textarea {
border: 0 none white;
overflow: hidden;
padding: 0;
outline: none;
background-color: #D0D0D0;
resize: none;
}
</style>
<script type="text/javascript">
var observe;
if (window.attachEvent) {
observe = function (element, event, handler) {
    element.attachEvent('on'+event, handler);
};
 }
 else {
 observe = function (element, event, handler) {
    element.addEventListener(event, handler, false);
 };
 }
function init () {
var text = document.getElementById('text');
function resize () {
    text.style.height = 'auto';
    text.style.height = text.scrollHeight+'px';
}
/* 0-timeout to get the already changed text */
function delayedResize () {
    window.setTimeout(resize, 0);
}
observe(text, 'change',  resize);
observe(text, 'cut',     delayedResize);
observe(text, 'paste',   delayedResize);
observe(text, 'drop',    delayedResize);
observe(text, 'keydown', delayedResize);

text.focus();
text.select();
resize();
}
 </script>
</head>
<body onload="init();">
<textarea rows="1" style="height:1em;" id="text"></textarea>
</body>
</html>

自动调整文本区域大小
文本区{
边框:0非白色;
溢出:隐藏;
填充:0;
大纲:无;
背景色:#D0;
调整大小:无;
}
var观察;
如果(窗口附件){
观察=函数(元素、事件、处理程序){
元素attachEvent('on'+事件,处理程序);
};
}
否则{
观察=函数(元素、事件、处理程序){
元素addEventListener(事件,处理程序,false);
};
}
函数init(){
var text=document.getElementById('text');
函数调整大小(){
text.style.height='auto';
text.style.height=text.scrollHeight+'px';
}
/*0-获取已更改文本的超时*/
函数delayedResize(){
设置超时(调整大小,0);
}
观察(文本“更改”,调整大小);
观察(文本“剪切”,延迟缩放);
观察(文本“粘贴”,延迟缩放);
观察(文本“下降”,延迟缩小);
观察(文本“按键”和“延迟缩放”);
text.focus();
text.select();
调整大小();
}

不,cols不做任何事情。请尝试发布在cols上方的新脚本。cols只是更改文本区域的宽度以进行文本包装。我不想要任何包装文本,我只想要每个换行之间的字符严格限制。你能帮我一个忙并发布你的完整脚本吗?我可以帮你修改一下。首先,你真的想搞乱正在键入的内容,或者你只是想让这个文本断行以显示建议?既然你在默默地插入新行,有什么理由你不能只在服务器端这样做吗?这样的话,文本的输入方式(键入与粘贴)就无关紧要了。@Havenard我真想搞乱输入的内容。