【发布时间】:2010-10-13 20:35:08
【问题描述】:
是否有规范的解决方案来限制某人可以输入文本区域的字符数?
我当然有服务器端验证,但想通过添加客户端代码来模拟您在 input[type="text"] 上使用 maxlength 获得的体验来改善用户体验,这样用户就不会看到“您的输入太长”错误消息,如果他们启用了 javascript。
【问题讨论】:
标签: javascript html
是否有规范的解决方案来限制某人可以输入文本区域的字符数?
我当然有服务器端验证,但想通过添加客户端代码来模拟您在 input[type="text"] 上使用 maxlength 获得的体验来改善用户体验,这样用户就不会看到“您的输入太长”错误消息,如果他们启用了 javascript。
【问题讨论】:
标签: javascript html
将 onchange 事件附加到 textarea。在那里您可以检查该值是否大于适当的值。 jQuery 示例:
$("#textarea-id").change(function (){
var text = $(this).val();
if( text.length > MAX ){
return false;
}
});
【讨论】:
这样就可以了……
function textareaMaxLen(event) {
var max = parseInt(this.attr("maxlength"), 10);
if(this.value.length >= max)
this.value = this.value.substr(0, max);
}
$("textarea").keyup(textareaMaxLen).blur(textareaMaxLen);
【讨论】:
我会这样做:
$ ('#textarea-id').bind (
'change input keyup keydown keypress mouseup mousedown cut copy paste',
function () { return ($(this).val().length <= maxlength) }
)
为了完全确定这么多 :-)
【讨论】:
我的非技术性 $0.02
按照 SO 在他们的评论字段中执行的操作,提供有关用户剩余字符长度的反馈,并允许他们超过最大值,但不要提交 > 300 个字符。原因如下:
【讨论】:
过去我是这样做的:
<textarea onkeyup="checkLength(this);"></textarea>
然后实现这个函数:
function checkLength(control) {
if (control.value.length > 5) {
control.value = control.value.substr(0, 5);
}
}
这是一个将长度固定为 5 的非常基本的示例,但希望能给你一些想法!
【讨论】: