我试图将下面显示的 contenteditable 跨度限制为 5 个字符(4 个数字和一个破折号)。用户需要能够输入从 -9999 BCE 到当前年份 2013 的年份。年份前的破折号表示 BCE 年份。任何没有破折号的东西都将是 AD 年。
这些都是可以接受的条目:
-9546
-765
-1
0
25
125
2013
<div class="HYPE_element" id="start_year" style="pointer-events: auto; top: 0px; left: 120px; position: absolute; padding: 8px; overflow: visible; word-wrap: break-word; display: inline; z-index: 5; font-size: 16px; color: rgb(120, 204, 187);">
<span contenteditable="true" class="numeric">2013</span>
</div>
现在任何人都可以添加字母数字字符,而且跨度只是不断向右扩展。
我用它来限制字符的长度为 5。
var content_id = 'start_year';
max = 4;
//binding keyup/down events on the contenteditable div
$('#'+content_id).keyup(function(e){ check_charcount(content_id, max, e); });
$('#'+content_id).keydown(function(e){ check_charcount(content_id, max, e); });
function check_charcount(content_id, max, e)
{
if(e.which != 8 && $('#'+content_id).text().length > max)
{
// $('#'+content_id).text($('#'+content_id).text().substring(0, max));
e.preventDefault();
}
}
但是我不确定如何将输入的字符限制为数字和破折号。