Проверил в хроме и ff, работает вот такая фигня (кроссбраузерно можно использовать onkeyup вместо oninput)
<html>
<head>
</head>
<body>
<script>
d=document.createElement("div")
d.contentEditable=true
d.innerHTML="1"
document.body.appendChild(d)
d.oninput=function(){
if(this.innerHTML.length>3) this.contentEditable=false
}
</script>
</body>
</html>