Javascript HTML-<;textarea>;标记困难

Javascript HTML-<;textarea>;标记困难,javascript,jquery,html,google-chrome,textarea,Javascript,Jquery,Html,Google Chrome,Textarea,问题: >P>如果文本长度超过其极限,则在文本中间给出输入,而不是从结尾开始截断字符。但我不想有这种行为 我想要的是,我只想允许只需要4000个字符的textarea。若用户试图输入额外字符,则不允许输入 $(文档).ready(函数(){ var cursorPosition=0; var enterKey_code=0; var maxlength=4000; var标志=0; 功能设置选择范围(输入、选择开始、选择结束){ if(输入设置选择范围){ input.focus(); in

问题:

>P>如果文本长度超过其极限,则在文本中间给出输入,而不是从结尾开始截断字符。但我不想有这种行为

我想要的是,我只想允许只需要4000个字符的textarea。若用户试图输入额外字符,则不允许输入

$(文档).ready(函数(){
var cursorPosition=0;
var enterKey_code=0;
var maxlength=4000;
var标志=0;
功能设置选择范围(输入、选择开始、选择结束){
if(输入设置选择范围){
input.focus();
input.setSelectionRange(selectionStart,selectionEnd);
}
else if(input.createTextRange){
var range=input.createTextRange();
范围。塌陷(真);
range.moveEnd('character',selectionEnd);
range.moveStart('character',selectionStart);
range.select();
}
}
功能设置CARETTOPOS(输入,pos){
设置选择范围(输入、位置、位置);
}
$('#MaxChar').text(maxlength);
函数countChar(按键事件){
var text_value=$('#Comments').val();
var cursorPosition=$('#Comments').prop(“selectionStart”);
var len=文本值。长度;
如果(len>maxlength){
flag=1;
$('#Comments').val(text_value.substring(0,maxlength));
}
$('#CurrentChar').html($('#Comments').val().length);
}
$(“#注释”).keyup(函数(键事件){
countChar(按键事件);
如果(标志==1)
{
var c=$(“#注释”);
SetCareTopos(c[0],光标位置+1);
flag=0;
}					
});
$(“#注释”).keydown(函数(键事件){
cursorPosition=$('#Comments').prop(“selectionStart”);
countChar(按键事件);
}); 
});

0/0


尝试使用
maxlength

maxlength
声明字符数的上限 用户可以输入。通常,用户界面会忽略用户输入的尝试 在超出此限制的其他字符中


输入时检查textbox中的值是否大于等于4000,然后禁用textbox元素

有关textarea和disabled属性的更多信息,请查看此链接

只需使用以下命令:-

 <textarea maxlength='4000'  rows="20" cols="40" id="Comments"></textarea> 
使用以下命令:

$('#Comments').keydown(function (key_event) {
                    var text_value = $('#Comments').val();
                    var len=text_value.length;
                    if (len > maxlength) {      
                        key_event.preventDefault();
                    }
                    cursorPosition = $('#Comments').prop("selectionStart");
                    countChar(key_event);
            }); 

@Divyesh它与所有主要浏览器兼容。检查这里:如果maxlength超过了ID,我不允许用户在文本区域输入或添加内容,请评论所有javascript代码并重试?此属性不需要任何javascript。@chrome中的Vicky:如果我用新行跳过包含文本的文本,现在如果我删除最后一个字符,它将不允许我在最后一个字符再次输入。@Vicky Gonsalves:请在chrome浏览器中尝试此小提琴…..您将理解我的问题
$(This).val().length>maxLength
这将永远不会执行。。由于maxlength属性永远不允许您跨越限制,因此将其更正为
$(this).val().length>=maxlength
。我不想使用任何消息框……只是我不希望用户输入字符……然后仅使用此部分
@IreshaRubasinghe让OP生成自己的逻辑。。即使在给他看了证据之后,OP说它在chrome中也不起作用!请在chrome浏览器中试用此提琴…..您将了解我的问题jsfiddle.net/j2pz0tjg/2如果您只尝试
部分而不使用任何JavaScript,则不会出现任何问题。您可以忽略这些键(ctrl+c,…)。我想没关系
$('#Comments').keydown(function (key_event) {
                    var text_value = $('#Comments').val();
                    var len=text_value.length;
                    if (len > maxlength) {      
                        key_event.preventDefault();
                    }
                    cursorPosition = $('#Comments').prop("selectionStart");
                    countChar(key_event);
            });