【问题标题】:How can we validate the number of lines in textarea through Javascript我们如何通过Javascript验证textarea中的行数
【发布时间】:2011-12-30 06:00:08
【问题描述】:

我想知道,我们如何验证数据,我们无法使用 Textarea 获取超过 20 行的数据。我们只想在 Jquery 的帮助下验证 textarea。 请建议我,验证值的正确方法。

【问题讨论】:

  • 行?它们取决于文本区域的宽度。一行中有多少个字符?计算字符数(而不是行),它变得更容易(并且避免人们将他们的文本区域扩展到整页并写下他们想要多少)
  • 哇——这会很棘手,尤其是在可以调整文本区域大小的浏览器上。
  • 为什么“行”是验证的限制?不应该是字符吗?如果没有,那么您只能计算换行数或将总字符数除以固定数量来粗略估计行数
  • 可能是重复问题[Finding No of lines in textarea][1] [1]: stackoverflow.com/questions/3697096/…
  • 要么更改规则以检查字符,要么禁用调整文本区域的大小。如果你做后者,你知道每行的字符数(列)。获取textarea中字符串的长度,除以cols,你就有了行数

标签: php javascript html validation


【解决方案1】:

类似这样的东西,最大行数 = 3

$("textarea").keydown(function(e){
   var rows = $(this).val().split("\n").length;
   if( e.which == 13 && rows == 3 )
   {
        alert( "TO MANY ROWS");
        return false;
   }
});

这不会检查文本区域中是否有太多字符,以查看是否有更多新规则,然后只输入使用。

现场示例:http://jsfiddle.net/hXjtv/

将其作为函数调用

function checkTextareaLength()
{
   var rows = $("textarea").val().split("\n").length;
   if( rows > 3 )
   {
        alert( "TO MANY ROWS");
        return false;
   }
}

onsubmit 将是 `onsubmit="checkTextareaLength();"

【讨论】:

  • 我们在哪里放置文本区域的名称。
  • $("textarea[name='YOURNAME']")
  • 如果用户在不按回车键的情况下编写长字符串,则此代码无法处理。
  • 每次用户在文本区域中按下一个键时,这段代码都会检查它,所以你应该在提交时检查它。如果你想这样做,你需要实现它的功能。更新了我的示例。
【解决方案2】:

我没试过,但你可以试试this jQuery plugin。它声称它可以检测换行,这与 Niels 发布的代码不同

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多