首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery限制文本区域中的行数和显示行数

问使用jQuery限制文本区域中的行数和显示行数
EN

Stack Overflow用户
提问于 2011-06-28 02:50:17
回答 5查看 67K关注 0票数 27

使用jQuery,我想:

  • 将用户可以在文本区域中输入的行数限制为设置数
  • 有一个行计数器显示,当输入行数时更新行数,
  • 返回键或\n将计算为行

代码语言:javascript
复制
$(document).ready(function(){
  $('#countMe').keydown(function(event) {
    // If number of lines is > X (specified by me) return false
    // Count number of lines/update as user enters them turn red if over limit.

  });   
});


<form class="lineCount">
  <textarea id="countMe" cols="30" rows="5"></textarea><br>
  <input type="submit" value="Test Me">
</form>

<div class="theCount">Lines used = X (updates as lines entered)<div>

对于这个例子,假设将允许的行数限制为10。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-28 03:44:19

html:

代码语言:javascript
复制
<textarea id="countMe" cols="30" rows="5"></textarea>
<div class="theCount">Lines used: <span id="linesUsed">0</span><div>

联署材料:

代码语言:javascript
复制
$(document).ready(function(){

    var lines = 10;
    var linesUsed = $('#linesUsed');

    $('#countMe').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', '');
        }
    });
});

小提琴:http://jsfiddle.net/XNCkH/17/

票数 52
EN

Stack Overflow用户

发布于 2019-05-09 08:37:18

下面是一些改进的代码。在前面的示例中,您可以粘贴包含所需更多行的文本。

HTML

代码语言:javascript
复制
<textarea data-max="10"></textarea>
<div class="theCount">Lines used: <span id="linesUsed">0</span></div>

JS

代码语言:javascript
复制
jQuery('document').on('keyup change', 'textarea', function(e){

        var maxLines = jQuery(this).attr('data-max');        
        newLines = $(this).val().split("\n").length;

        console.log($(this).val().split("\n"));

        if(newLines >= maxLines) {
            lines = $(this).val().split("\n").slice(0, maxLines);
            var newValue = lines.join("\n");
            $(this).val(newValue);
            $("#linesUsed").html(newLines);
            return false;
        }

    });
票数 2
EN

Stack Overflow用户

发布于 2021-07-03 22:17:12

对于将新值设置为状态的功能组件,并将其转发给道具:

代码语言:javascript
复制
const { onTextChanged,  numberOfLines, maxLength } = props;
const textAreaOnChange = useCallback((newValue) => {
        let text = newValue;
        if (maxLength && text.length > maxLength) return
        if (numberOfLines) text = text.split('\n').slice(0, numberOfLines ?? undefined)
        setTextAreaValue(text); onTextChanged(text)
    }, [numberOfLines, maxLength])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6501043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档