Javascript 我如何制作一个像Twitter一样突出显示字符限制的文本区域?

Javascript 我如何制作一个像Twitter一样突出显示字符限制的文本区域?,javascript,twitter,textarea,Javascript,Twitter,Textarea,Twitter的submit tweet文本框突出显示超过字符限制的字符: 如您所见,超出字符限制的字符以红色突出显示。如何实现这样的目标?您可以在此处找到必要的解决方案和所需的代码: ……这里: 你的问题似乎是口是心非的 注意:我没有选择将上述链接作为评论发布(即特权取决于声誉) 以下是Simon Kuang建议的代码(见注释): HTML: JavaScript: $(文档).ready(函数(){ $('#myDiv').keyup(函数(){ var content=$('#myD

Twitter的submit tweet文本框突出显示超过字符限制的字符:


如您所见,超出字符限制的字符以红色突出显示。如何实现这样的目标?

您可以在此处找到必要的解决方案和所需的代码:

……这里:

你的问题似乎是口是心非的

注意:我没有选择将上述链接作为评论发布(即特权取决于声誉)

以下是Simon Kuang建议的代码(见注释):

HTML: JavaScript:
$(文档).ready(函数(){
$('#myDiv').keyup(函数(){
var content=$('#myDiv').html();
var extra=content.match(/.{19}(.*)/)[1];
$('#extra').html(extra);
var newContent=content.replace(额外“+extra+”);
$('#sample').html(newContent);
});
});
试试这个(模式)

html


jsiddle

以下是示例,当达到限制时显示警报,然后突出显示输入的所有字符

$(文档).ready(函数(){
变量输入=$('#text_text');
var warning=$(“#warning”);
var char_limit=30;
input.on('keyup',function(){
var val=$(this.val();
if(val.length>parseInt(字符限制)){
警报(“达到限制”);
warning.html('hello').css('display','block');
l=值长度
var input=document.getElementById(“text_text”);
输入。设置选择范围(字符限制,l);
input.focus();
}否则{
警告.css('display','none');
}
});
});
#警告{
显示:无;
}


你能显示你的HTML和你尝试过的内容吗?$(document).ready(function(){$(“#post infinity”).keyup(function(){var maxLength=200;var length=$(this).val().length;$(“#message count”).text(maxLength-length);if(length>maxLength){$(“#message count”).css({“color”:“#ccc”)$(“#按钮发送”).attr({“disabled”:“disabled”})}else{$(“#消息计数”).css({“color”:“#6b6b”})$(“#按钮发送”).removeAttr(“disabled”);});所以红色突出显示?我不知道如何。我们如何才能进入红色?不,请显示问题中的代码。因此,非常感谢,谢谢你,你会想在你的答案中重现这些内容。所以,重复谢谢,我现在就试一下。别忘了将你的JavaScript代码放在必要的脚本标记中:
@poplaines-Effectively、 是的,但值得注意的是,代码是从第二个链接派生的,CSS名义上已经过修改。
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <h3>Your text here</h3>
   <div contenteditable="true" id="myDiv">edit me
  </div>
  <p>
    <h3>Stuff over 19 characters</h3>
  <div id="extra">
  </div>
  <p>
    <h3>Sample output</h3>
    <div id="sample">

  </div>
</body>
</html>
.highlight {
 color:red;
}
$(document).ready(function() {
  $('#myDiv').keyup(function() {
    var content = $('#myDiv').html();
    var extra = content.match(/.{19}(.*)/)[1];

    $('#extra').html(extra);

    var newContent = content.replace(extra, "<span class='highlight'>" + extra + "</span>");
    $('#sample').html(newContent);
  });
});
<data></data><br />
<textarea maxlength="20" placeholder="20 character limit"></textarea>
$(function () {
    $(document).on("keyup", "textarea", function (e) {
        if ($(e.target).val().length >= 20) {
            $("data").text($(e.target).attr("placeholder"))
            .fadeIn(1000).fadeOut(9000);
        };
    });
});