限制可以输入“textarea”的文本数量的最佳方法是什么?

时间:2008-12-18 15:57:03

标签: asp.net javascript html

限制用户可以在网页上的“textarea”字段中输入的文字数量的最佳方法是什么?有问题的应用程序是ASP .NET,但首选平台无关的答案。

据我所知,可能需要一些javascript来完成这项工作,因为我不希望实际使用该数据量执行'post',因为ASP .NET确实有大小的上限。请求它将服务(虽然我不知道究竟是什么)。

所以也许真正的问题是,在符合以下条件的javascript中执行此操作的最佳方法是什么:

- 对于两个用户来说,只需输入数据并从其他来源复制/粘贴数据即可。

- 必须尽可能'508合规'。

6 个答案:

答案 0 :(得分:11)

function limit(element, max_chars)
{
    if(element.value.length > max_chars)
        element.value = element.value.substr(0, max_chars);
}

作为javascript,并且......

<textarea onkeyup="javascript:limit(this, 80)"></textarea>

作为XHTML。用您想要的限制替换80。无论如何,我就是这样做的。

请注意,这会阻止用户键入文本框中的限制,但用户仍然可以使用自己的javascript绕过此限制。为确保您的安全,还必须使用服务器端语言进行检查。

答案 1 :(得分:6)

在ASP.Net中使用RegularExpressionValidator控件来验证字符数以及通常的验证

答案 2 :(得分:3)

对我来说,最方便用户的想法是像Twitter一样的解决方案。提供用户已经超过最大值的视觉指示,但不限制他进行打字。

无论您使用哪种Javascript,您仍需要在服务器端验证。禁用Javascript的用户将无法绕过您的限制。

答案 3 :(得分:2)

正如Javache所说,你仍然需要检查服务器端。我们一直在使用jQuery validator plugin,它支持其他东西的音调中的Max长度......

答案 4 :(得分:1)

我使用这个,必须限制。它还为用户提供了剩余的字符数。

function CountLength(vControl)
    {
        var strValue = vControl.value;
        var vMax = 480;
        var vLeft = vMax - strValue.length;
        if (vLeft < 0)
        {
            vLeft = 0;
        }
        var vMessage = returnObjById('TextCounter');
        if (document.all)
        {
            vMessage.innerText = vLeft + ' characters remaining.';
        }
        else
        {   
            vMessage.textContent = vLeft + ' characters remaining.';
        }
        if (vLeft == 0)
        {
            vControl.value = vControl.value.substring(0, vMax);
        }
    }

答案 5 :(得分:0)

jQuery在这里也提供了一些options。选项,选项和选项。