限制用户可以在网页上的“textarea”字段中输入的文字数量的最佳方法是什么?有问题的应用程序是ASP .NET,但首选平台无关的答案。
据我所知,可能需要一些javascript来完成这项工作,因为我不希望实际使用该数据量执行'post',因为ASP .NET确实有大小的上限。请求它将服务(虽然我不知道究竟是什么)。
所以也许真正的问题是,在符合以下条件的javascript中执行此操作的最佳方法是什么:
- 对于两个用户来说,只需输入数据并从其他来源复制/粘贴数据即可。
- 必须尽可能'508合规'。
答案 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。选项,选项和选项。