Tengo un div "editable" y necesito hacer un max-length sobre éste.
Básicamente funciona bien pero no consigo hacerlo funcionar correctamente si una vez llegado al máximo de caracteres permitidos, selecciono todo o parte del texto y pulso una tecla (es decir, borro todo lo escrito y escribo el caracter de la tecla).
Código Javascript
:
Ver original$(document).ready(function(){
var lugar = '#texto';
var max = 10;
$(lugar).keyup(function(e){
contador(lugar,max,e);
}).keydown(function(e){
contador(lugar,max,e);
});
function contador(lugar,max,e){
if(e.which != 8 && e.which != 37 && e.which != 38 && e.which != 39 && e.which != 40 &&
$(lugar).text().length > max)
{e.preventDefault();}
}
});
Aqui el ejemplo por si no apetece copiar y pegar el codigo.
En realidad el problema no lo quiero abordar unica y exclusivamente mediante los eventos de teclado ya que puede seleccionarse el texto de multiples maneras: control+a, shift+flechas, seleccion manual con el raton,.... no obstante, cualquier ayuda sería bienvenida.
Un saludo y muchas gracias por vuestro tiempo.