我有一个<textarea>元素.我可以使用JavaScript来检测(例如)10行文本吗?
可能重复:
如何获取<textarea>中的行数?
我有一个textarea和我7 lines在其中写的只是2 new line character如下,想象下面的代码框是一个textarea,只有两次输入键被按下.
A text box, text field or text entry box is a kind of widget used when building
a graphical user interface (GUI). A text box purpose is to allow the user to
input text information to be used by the program.
User-interface guidelines recommend a single-line text box when only one line of
input is required, and a multi-line text box only if more than …Run Code Online (Sandbox Code Playgroud) 建议的副本是我得到这个问题的基础的问题,所以它不是重复的!事实上,我从一开始就已经把这个问题联系起来了......
好的编辑:
我做了一个JSFiddle(我第一次:)).注意textarea如何不按照人们的意愿扩展.在textarea中键入内容,它会立即调整大小.
如果我们可以自动发送按键事件,它可能会工作......(这个相关问题没有帮助,答案没有效果).
我在这里使用textareaas as .然后,我从一个文件中读取并将内容放在文本框中,但它没有按原样调整大小.
我像这样更新文本框:
function updateTextbox(text) {
$('#cagetextbox').val(text);
};
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我在Ubuntu 12.04上使用firefox 34.0规范,如果它扮演一些角色,我希望不是这样,因为我的一些用户使用Chrome.
编辑:
尝试写这样的东西:
$('#cagetextbox').attr("rows", how many rows does the new text contain);
Run Code Online (Sandbox Code Playgroud)
请注意,如果我们试图找出textarea包含多少行文本,我们将得到1作为答案.
EDIT_2
也许是这样的width/(length_of_line * font_size).对于一些测试,它似乎是正确的,如果我减去1(当然只保留结果的整数部分).
我有文本区域框,我需要在文本区域输入文本时检查数据.我写的更改方法但是这里不起作用的是代码.
<textarea (change)="textAreaEmpty(textValue)" #textValue></textarea>
Run Code Online (Sandbox Code Playgroud)
零件
textAreaEmpty(text:string){
if(text.length > 0)
console.log(text);
}
Run Code Online (Sandbox Code Playgroud)
我还需要检查用户在文本区域中输入了多少行.我在anuglar2中找到任何解决方案,我能够使用jquery或javascript获取数据,但我不想使用它.我想在角度2使用它,任何身体可以帮助我吗?
如何显示所有textarea行而不是具有垂直滚动.我已经尝试使用min-height和max-height和height:css但不起作用.
.form-control{
width:400px;
min-height: 100px;
max-height: 900px;
height: auto;}
Run Code Online (Sandbox Code Playgroud)
我真的不知道是否可以用css做到这一点.
也许可以使用本机javascript,所以我尝试这样的事情
function expandtext(expand) {
while (expand.rows > 1 && expand.scrollHeight < expand.offsetHeight) {
console.log("display all rows!")>
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一些不错的东西,但它只增加和减少行,所以如何在不使用滚动的情况下显示所有textarea行.不需要固定高度的解决方案,需要动态或其他仅适用于Chrome浏览器的解决方案或仅适用于像Object.observe()这样的firefox.
function expandtext(expand) {
while (expand.rows > 1 && expand.scrollHeight < expand.offsetHeight) {
console.log("display all rows!") >
}
}Run Code Online (Sandbox Code Playgroud)
body {
padding: 20px;
}
.form-control {
width: 400px;
min-height: 100px;
max-height: 900px;
height: auto;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"/>
<div class=" …Run Code Online (Sandbox Code Playgroud)我正在尝试计算pre元素的行数,我正在使用它:
var numlines = $('#mypreelement').text().match(/\n\r?/g).length + 1;
Run Code Online (Sandbox Code Playgroud)
它有效,但在某些情况下我得到一个错误
错误:$('#mypreelement').text().match(/ \n\r?/ g)为null
这只发生在某些页面上,但这些页面与其工作的页面没有任何不同,当然除了内容......
为什么?
我找到了一些限制textarea中使用的行的脚本,如下所示:
$(document).ready(function(){
var lines = 10;
var linesUsed = $('#linesUsed');
var newLines=0;
$('#rev').keydown(function(e) {
newLines = $(this).val().split("\n").length;
linesUsed.text(newLines);
if(e.keyCode == 13 && newLines >= lines) {
linesUsed.css('color', 'red');
return false;
}
else {
linesUsed.css('color', '');
}
});
Run Code Online (Sandbox Code Playgroud)
当你按Enter键并将其限制为10时,它可以正常工作.但是当你输入那么长的句子时它会自动转到没有\n的新行并且当你复制粘贴文本时会出现问题,然后它无法限制使用的线.
有谁知道如何解决这一问题.
重要提示:解决方案需要适用于textarea
javascript ×7
html ×4
textarea ×4
css ×2
jquery ×2
angular ×1
autoresize ×1
debugging ×1
line-count ×1
match ×1
string ×1