Chronoforms. Error con la validación en Internet Explorer

Joomla

Otra vez con un error que no hay manera de encontrar solución en Google.

Resulta que si tenemos un formulario con campos requeridos, el comportamiento normal, es que primero valide los campos, y si todo esta bien haga el submit, y sinó, que pinte los mensajes de error.

Pues resulta, que esto me funcionaba bien en FF y Chrome, pero no en IE (ni 7 ni 8), el cual, enviaba el formulario aunque estuviera vacío.

Después de mucho darle vueltas, hemos encontrado una solución que por lo menos en nuestro caso, funciona perfectamente.
Se trata de sustituir en el archivo ‘/components/com_chronocontact/js/livevalidation_standalone.js‘ la línea aprox. 409:

this.insertAfterWhatNode.parentNode.insertBefore(elementToInsert, this.insertAfterWhatNode.nextSibling);

Por:

this.insertAfterWhatNode.parentNode.appendChild(elementToInsert);

Pues nada. Si alguien traza mejor el problema y encuentra una solución mejor con el nodo ‘this.insertAfterWhatNode.nextSibling‘ que no dude en comentarlo!
XD

Chronoforms. Error con la validación de requerido de checkboxs

Joomla

Puede que te encuentres con el problema de que al añadir un checkbox como por ejemplo, el típico de que ‘Acepto la política de privacidad’, que necesitas que sea necesario marcar para que se envie el formulario, nos encontremos con que el componente chronoforms, no lo hace.

Una posible alternativa (a falta de una solución oficial), es modificar el fichero ‘\components\com_chronocontact\js\jsvalidation2.js‘ en la linea 47, donde pone:

var myoptions = $(chronoformname).getInputsByName(elm.getProperty('name'));

ponemos:

var myoptions = document.getElementsByName("check00");

Donde «check00» (son ceros) es en nuestro caso el nombre del input del checkbox en questión.

Para saber el nombre y comprobar que se va a llamar a la función de validación, podemos ver el código generado por chronoforms en la administrador > ‘Components’ > ‘Chronoforms’ > ‘Nombre del formulario de la lista’ > ‘Pestaña Form Code’ > ‘Desplegamos el Form Html’.

Entonces, buscamos nuestro checkbox en el código y comprobamos que lleve class=»validate-one-required» y apuntamos el nombre.

Además, en el javascript que os comentaba, veréis que tenéis la posibilidad de traducir los mensajes de error al castellano. XD