SERGIOIGLESIAS

Blog sobre Joomla
Sergio Iglesias · Blog sobre Joomla

Validar textarea con JCE para Joomla! utilizando Javascript

Añadir a fuentes preferidas
Tips Joomla 1 - 2 minutos Visitas: 4357

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.

Añadir a fuentes preferidas
Gratuito · Primer paso recomendado

¿No sabes bien en qué estado
está tu web Joomla?

Antes de decidir si hay que arreglar, migrar o mantener, conviene saber qué está pasando. Reviso el estado de tu web — versión de Joomla, extensiones y lo que se pueda ver — y te digo qué conviene hacer y en qué orden.

Versión de Joomla y ruta de actualización Estado de extensiones Plan de acción con recomendaciones Informe por email + HTML
Solicitar revisión gratuita sin compromiso

Respuesta en 24–48 h laborables

Suscríbete a mi newsletter

¿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.