我在TextArea询问有关限制字符的大多数问题,我不希望这样。我想知道如何将TextArea html元素的可编辑区域限制为实际的textarea本身。这甚至是可能的。将TextArea中的文本限制为TextArea的实际区域
例如:
说我有一个TextArea是30列4行。您可以将此区域中的文字限制为120个字符,但这不会阻止用户返回5次,并且已经超过了我为其设置的给定区域。我不想要一个滚动条出现。
是否有任何JavaScript可以解决这个问题?
我在TextArea询问有关限制字符的大多数问题,我不希望这样。我想知道如何将TextArea html元素的可编辑区域限制为实际的textarea本身。这甚至是可能的。将TextArea中的文本限制为TextArea的实际区域
例如:
说我有一个TextArea是30列4行。您可以将此区域中的文字限制为120个字符,但这不会阻止用户返回5次,并且已经超过了我为其设置的给定区域。我不想要一个滚动条出现。
是否有任何JavaScript可以解决这个问题?
复制文成visibility: hidden
分度,字体样式等于文本区域和max-width
,不会让他走超出你的列数。如果文本隐藏副本的高度超出了限制,请删除已添加的文本。
以下是关闭您需要什么。不幸的是,它没有nix第5行(在第4行输入后),直到你输入了一些东西,并且它可以在第5行留下几个字符(如果你换行到第4行的第5行) 。我不确定如何进一步改进技术。
var $measure = $('#measure');
var $input = $('#input');
var $output = $('#measurement');
var existingText = '';
$input.on('keyup', function(event) {
$measure.html($input.val());
$output.val($measure.width() + 'x' + $measure.height() + 'px');
if ($measure.height() > 60) {
$input.val(existingText.trim());
$measure.html(existingText.trim());
}
existingText = $input.val();
});
#measure
{
position: absolute;
visibility: hidden;
height: auto;
width: auto;
white-space: pre-wrap;
/* set font style equal to style of textarea */
font-family: monospace;
font-size: 13px;
letter-spacing: normal;
line-height: normal;
word-spacing: 0;
word-wrap: break-word;
max-width: 221px;
border: 1x solid black;
margin: 2px;
padding: 2px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="input" cols="30" rows="4"></textarea>
<div id="measure"></div>
<br>
<input type="text" disabled="disabled" id="measurement"/>
这并不能解决问题。他们仍然可以返回五次,而且不会超过120个字符 – Madonkadonk 2014-10-17 21:57:10
你的极限,然后将两件事情:1。 共120个字符 - 或 - 2. 4线(4 \ n个字符) 你应该写客户端验证那效果 – spojam 2014-10-17 21:20:19
它不那么简单。如果用户输入了两次输入,然后写入一段占用3行的段落,则输入的字符少于120个字符,并且只有两个回车符。 – Madonkadonk 2014-10-17 21:58:17