Documentación » Verificar la entrada de datos necesarios
Es posible realizar una comprobación en los formularios que aparecen en foros, libros, o en cualquier otro tipo de
formulario, de esta manera se puede informar al usuario de los campos necesarios que no ha rellenado.
Además de esta comprobación, cuando después se envía un mensaje, los servicios de Melodysoft pueden mostrar algún aviso de
error, por ejemplo si cuando alguien firma en el foro o libro, no indica su nombre o el propio texto del mensaje.
Esta opción no inhabilita la propia comprobación que se realizará después, pero puede ser muy útil para acelerar el envío
de datos, ya que el formulario no se enviará hasta que se cumplan las condiciones, una vez que todo está correcto, los
datos se enviarán.
Para hacer todo esto es necesario que tengas algunas nociones de HTML, lo primero es personalizar el diseño del foro, libro
o formulario desde la sección Personalizar del panel de control, es recomendable que eches un
vistazo a algún manual de HTML para que te familiarices con todo.
Lo que debes hacer es localizar el código <form> del formulario donde se recogen los datos que posteriormente
se enviarán al sistema de foros, libros o de cualquier otro formulario. Esta etiqueta HTML indica el principio del bloque
donde se encuentran los campos y las cajas de texto necesarias. Aproximadamente tiene esta estructura:
<form method = "post" action = "???">
(...aquí irían los campos de datos...)
</form>
El valor method indica el método por el que se envía el formulario, suele ser POST, aunque también podría ser GET,
action indica la dirección a la que se envían los datos, y depende del servicio si es foro, libro o formulario, pero
en principio no es necesario que modifiques nada ya que debes partir de una de las plantillas disponibles, o del propio diseño
que tiene el foro o libro que estás personalizando.
Lo único que tienes que añadir es el evento onSubmit que se disparará cuando se pulse el botón de "Enviar",
se le asigna que devuelva una función de JavaScript mediante return, de manera que se llamará cuando se intente enviar el formulario,
a esta función la podemos llamar por ejemplo Verificar(), también hay que indicar un nombre único al formulario en toda
la página mediante la etiqueta name, en este caso lo llamamos frm, el código del formulario con estos dos nuevos
valores quedaría así:
Delante del formulario podemos poner la función JavaScript que comprobará que los campos están introducidos, el
código es parecido al de muchos lenguajes de programación como C++, se comprueba el valor que tiene cada campo de ese
formulario:
if(document.frm.NOMBRE_CAMPO.value == "") {
(...aquí iría lo que queremos que haga la función si no tiene valor en el campo...)
}
document indica que nos estamos refiriendo al documento actual, frm es el nombre del formulario que hemos llamado
mediante name en el <form>, NOMBRE_CAMPO sería el nombre del campo y value la propiedad que
devuelve el valor de ese campo. No es necesario que se realice una comprobación en los campos HIDDEN de los formularios.
Para comprobar si un campo de tipo CHECK tiene el valor activo, se haría mediante:
if(document.frm.NOMBRE_CAMPO.checked) { ... }
El método focus() fijaría el foco en la caja de texto donde falta rellenar el campo, así no sería necesario que el
usuario tenga que posicionarse mediante el ratón o teclado, ya que el cursor se situaría en ese lugar,
listo para esperar las pulsaciones del teclado.
Este sería un ejemplo de cómo quedaría todo en el formulario que se emplea en los foros, aquí se solicita que se indique
sólo el nombre y el mensaje:
<script>
function Verificar() {
if(document.frm.nombre.value == "") {
alert("Por favor indica tu nombre");
document.frm.nombre.focus();
return false;
}
Perfeccionando las funciones... return true se pone al final de la función para que devuelva verdadero y así el formulario pueda enviarse, si lo deseas
podrías poner una confirmación con un mensaje de aviso, para hacerlo quita return true y pon:
return confirm("Por favor confirma que deseas enviar los datos");
También podrías mostrar al usuario los datos que se van a enviar de la siguiente manera:
return confirm("Vas a enviar estos datos:\nNombre: "+document.frm.nombre.value+"\nMensaje: "+document.frm.mensaje.value);