[英]How can I make a textarea with character limit highlighting like Twitter?
Twitter的“提交推文”文本框突出显示了超出字符数限制的字符:
如您所见,超出字符限制的字符以红色突出显示。 我怎样才能实现这样的目标?
您将在此处找到必要的解决方案和所需的代码:
...和这里:
您的问题似乎是重复的。
注意:我没有选择将以上链接发布为评论(即特权取决于信誉)。
这是Simon Kuang推荐的代码(请参阅注释):
<!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);
});
});
这是示例,当达到限制时显示警报,然后高亮显示所有输入的字符。
$(document).ready(function() { var input = $('#text_text'); var warning = $('#warning'); var char_limit = 30; input.on('keyup', function() { var val = $(this).val(); if (val.length > parseInt(char_limit)) { alert("limit reached"); warning.html('hello').css('display', 'block'); l = val.length var input = document.getElementById("text_text"); input.setSelectionRange(char_limit, l); input.focus(); } else { warning.css('display', 'none'); } }); });
#warning { display: none; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="test_box"> <textarea name="msg" cols="50" rows="5" id="text_text"></textarea> <div id="warning"></div> </div>
试试这个(模式)
html
<data></data><br />
<textarea maxlength="20" placeholder="20 character limit"></textarea>
js
$(function () {
$(document).on("keyup", "textarea", function (e) {
if ($(e.target).val().length >= 20) {
$("data").text($(e.target).attr("placeholder"))
.fadeIn(1000).fadeOut(9000);
};
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.