Tengo un contenteditable con un elemento
dentro de él como el siguiente
dummy content here !!!!!
Cuando hago clic en la tecla de retroceso en el teclado hasta que elimina todo el texto, si vuelvo a hacer clic en la tecla de retroceso, también se elimina el elemento
. En mi caso, me gustaría mantener al menos un elemento
allí
$(document).on('keydown', '[contenteditable=true]', function(e){ var contenteditable = $(this) if(e.keyCode == 8){ // if backspace var p = contenteditable.find('p'); var pLength = p.length; if(pLength == 1){ // if only one exists inside contenteditable var pHtml = p.html(); // if only
is still inside
then prevent // the backspace to delete the
if( pHtml == "
" || pHtml == ""){ e.preventDefault() } } } });
¡Pero no funciona! También quiero evitar la eliminación de
si el usuario selecciona todo el texto a la vez utilizando Ctrl + A o el mouse y pulsa la tecla Retroceso.
Tampoco estoy seguro de si mi método es el mejor, pero estoy abierto a todas las sugerencias. Gracias
ACTUALIZACIÓN:
He encontrado otra forma de hacerlo pero aún no está completa:
$(document).on('keyup', '[contenteditable=true]', function(e){ var contenteditable = $(this); if( e.keyCode == 8 ) { if(contenteditable.find('p').length == 0){ contenteditable.html('
'); } } });
en la tecla Retroceso, compruebo si no existe ningún elemento P dentro del contenteditable, si no se encuentra ningún elemento, agrego uno con
dentro, pero aún debo configurar el cursor antes de que br