我在我的应用程序中使用Html.TextArea,当我将其maxlength属性设置为255时。它不起作用并写入超过255个字符。如何解决这个问题
答案 0 :(得分:2)
答案 1 :(得分:1)
HTML <textarea>
标记不支持“maxlength”属性。存在各种Javascript解决方案,一些用于框架,另一些用于独立。基本上有必要捕获按键事件(使用Javascript)并跟踪内容长度。通常,对用户的一些消息传递被认为是一个非常好的想法,就像Stackoverflow“评论”框一样。
答案 2 :(得分:0)
您可以使用JavaScript验证程序。例如,
function limitText(limitField, limitCount, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
} else {
limitCount.value = limitNum - limitField.value.length;
}
}
<textarea name="limitedtextarea" onKeyDown="limitText(this.form.limitedtextarea,this.form.countdown,255);"
答案 3 :(得分:0)
这样可以防止更长的文本输入或粘贴到任何文本区域。您需要做的就是添加'maxlength'属性。
$(function () {
//This bit will prevent the user from typing in too many characters...
$('textarea').keypress(function (e) {
//TODO: error handling...
var limit = parseInt($(this).attr('maxlength'));
var currentText = $(this).val();
var chars = currentText.length;
//too many charaters?
if (chars >= limit) {
e.preventDefault(); //cancel the key press
}
});
//This bit will prevent the user pasting in long strings...
$('textarea').bind('paste', function () {
//TODO: error checking
var limit = parseInt($(this).attr('maxlength'));
var element = $(this);
setTimeout(function () {
var currentText = element.val();
var chars = currentText.length;
if (chars > limit) {
//get the first 'n' characters
var newText = currentText.substr(0, limit);
//and replace the text.
element.val(newText);
}
}, 10);
});
});