SERGIOIGLESIAS

Blog sobre Joomla

Validar textarea con JCE para Joomla! utilizando Javascript

@sergiois Tips Joomla 1 - 2 minutos Visto: 3822

Formación Joomla!Cuando estamos desarrollando una extensión para Joomla!, o modificando una existente, puede ocurrirnos, como me ha pasado a mi, que tengamos que validar con javacript un campo de textarea. Hasta aquí parece sencillo.

Pero, ¿Qué ocurre si tenemos un editor WYSIWYG como es JCE? Aquí la cosa cambia un poco y la validación hay que realizarla de otra manera..

 

1/ La manera normal

Tenemos un textarea con el nombre "contenido":

<textarea name="contenido"></textarea>

Para validar:

<script languaje=javascript>
function validar(){
if (document.miformulario.contenido.value.length==0) {
alert("textarea vacio");
return false;
} else
return true;
}
</script>

2/ Mediante getElementById

Tenemos un textarea con el nombre "contenido":

<textarea name="contenido" id="contenido"></textarea>

Para validar:

<script languaje=javascript>
function validar(){
var contenido_validar = document.getElementById("contenido");
if (contenido_validar.value.length==0) {
alert("textarea vacio");
return false;
} else
return true;
}
</script>

3/ Con JCE

JCE es un editor WYSIWYG para Joomla! muy completo y que recomiendo para utilizar en vuestro sitio web.

Lo que hace este editor, es ocultarnos nuestro campo textarea y añadir un iframe con un html que es precisamente el editor.

Editor JCE Joomla!

Por lo tanto, al hacer este procedimiento, no nos valen las anteriores funciones de validar que hemos explicado anteriormente.
Para poder acceder al contenido que estamos editando, tenemos que hacer lo siguiente:

<script languaje=javascript>
function validar(){
var mi_iframe = document.getElementById("id_del_iframe");
var contenido = mi_iframe.contentWindow.document.body.innerHTML;
if (contenido.length<=19) {
alert("textarea vacio");
return false;
} else
return true;
}
</script>

La pregunta ahora será la siguiente: ¿Por qué menos o igual que 19? Pues porque el editor JCE siempre tiene puesto un <br _mce_bogus="1"> por defecto, cuya longitud es 19.

Separador JCE Joomla!

Espero que esto le pueda venir bien a alguien.

¿Te ha gustado el artículo?

Suscríbete a mi newsletter y recibe contenido exclusivo.
Podrás hacer gratis un Curso de desarrollo de plantillas Joomla.

No hay comentarios

Solicita presupuesto

¿Quieres una página web que funcione?

Contacta conmigo y hablemos de tu proyecto.