Escrito por: Martín el 03-03-2009 09:54:28 y leído 1069 veces

Esta vez, como tenía que validar un formulario y no quise usar jQuery para hacerlo, me puse a escribir mi propia función.
Necesita solamente de unos toques de CSS y 2 funciones en javascript, una para validar en sí y otra para restablecer el ´class´ de los elementos si fueron rellenados por el usuario.
En mi ejemplo, el formulario se compondrá de 4 elementos básicos, 3 input text y un textarea para datos básicos de contacto, los cuales tienen que ser todos completados antes de enviar.
Manos a la obra...
1) El primer paso, será crear nuestro formulario, para ello, pongo a disposición el ejemplo usado en el código 1.
2) Lo segundo, será montar el CSS de ese formulario (ver código 2).
3) Y lo último, será poner nuestra función javascript antes del form (ver código 3).
El funcionamiento.
Es muy básico, al rellenar el formulario se ejecuta la función de validación... Si hay campos sin rellenar, no dejar enviar el formulario.
Mientras tanto...
Al picar texto sobre cada campo, se vuelve a ejecutar otra función más, que comprueba que el campo se rellenó, y en el caso de los e-mails, por expresiones regulares, comprueba que sea una dirección de correo válida.
Si te vale, mira la demo online para ver su funcionamiento y cópiate el código fuente de ahi para usarlo.
Seguramente se podrá mejorar... pero eso te lo dejo a tí!
Código XHTML
<p id="error" class='error' style='display:none'>Los campos marcados con * son requeridos.</p> <p id="error2" class='error' style='display:none'>El e-mail no parece ser correcto.</p> <form name="fvalida" id="registro" class="contacto" method="post" action="#"> <fieldset>Nombre*:<input type="text" name="nombre" id="nombre" onkeypress="javascript:revalida(this.id);" /></fieldset> <fieldset>E-mail*:<input type="text" name="email" id="email" onkeypress="javascript:revalida(this.id);" /></fieldset> <fieldset>Teléfono*:<input type="text" name="telefono" id="telefono" onkeypress="javascript:revalida(this.id);" /></fieldset> <fieldset>Consulta*:<textarea rows="3" name="mensaje" id="mensaje" onkeypress="javascript:revalida(this.id);"></textarea><input type="hidden" name="envio" value="SI" /></fieldset> <fieldset><input type="button" id="enviar" name="enviar" value="Enviar Consulta" onclick="valida_envia()" class='boton1' /></fieldset> </form>
Código CSS
/* color de borde de los campos requeridos */
.requerido {border:1px solid red !important;}
/* estilo para los párrafos de error */
.error {border:1px solid red;padding:5px;font-weight:bold;color:red !important;font:normal 12px Arial;}
/* estilo para desactivar el botón enviar */
.gris {background:gray !important;border:1px solid gray !important;color:#fff;border:0;padding:3px 0;margin:5px 0;font-size:11px;width:200px !important;}
/* estilo del form */
form.contacto {width:500px;margin:20px auto;font:normal 12px Arial;}
.contacto fieldset {border:0;margin:0 0 10px 0;text-align:left;}
.contacto select ,.contacto input ,.contacto textarea{margin: 5px 0;width:500px;padding:3px 0;border:1px solid #fba025;font-size:11px}
.contacto input.boton1 {background:#fba025;color:#fff;border:0;padding:3px 0;margin:5px 0;font-size:11px;width:200px;border:1px solid #fba025}Código JAVASCRIPT
claseError="requerido";
function validoemail(email)
{
var s = email;
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(s)) return true;
else return false;
}
function valida_envia(){
var nombre = document.fvalida.nombre.value;
var telefono = document.fvalida.telefono.value;
var email = document.fvalida.email.value;
var mensaje = document.fvalida.mensaje.value;
if (nombre.length==0 || telefono.length==0 || email.length==0 || mensaje.length==0){
document.getElementById("error").style.display="block";
if (nombre.length==0) document.fvalida.nombre.className=claseError; else document.fvalida.nombre.className="";
if (telefono.length==0) document.fvalida.telefono.className=claseError; else document.fvalida.nombre.className="";
if (email.length==0) document.fvalida.email.className=claseError; else document.fvalida.email.className="";
if (mensaje.length==0) document.fvalida.mensaje.className=claseError; else document.fvalida.nombre.className="";
return 0;
}
else
{
document.fvalida.submit();
}
}
function revalida(cual){
var ese = document.getElementById(cual).value;
if (ese.length>0){document.getElementById(cual).className="";}
var nombre = document.fvalida.nombre.value;
var telefono = document.fvalida.telefono.value;
var email = document.fvalida.email.value;
var mensaje = document.fvalida.mensaje.value;
if (nombre.length>0 && telefono.length>0 && email.length>0 && mensaje.length>0){document.getElementById("error").style.display="none";}
if (email.length>0){
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))
{
document.fvalida.email.className="";
document.getElementById("error2").style.display="none";
document.getElementById("enviar").disabled=false;
document.getElementById("enviar").className="boton1";
}
else
{
document.getElementById("error2").style.display="block";
document.fvalida.email.className=claseError;
document.getElementById("enviar").disabled=true;
document.getElementById("enviar").className="gris";
}
}
}Categorías: Validación • Formularios • Jquery • Css • Javascript • Html • •
validacion y estilos de formularios • validar formulario con javascript onkeypress • validar campo de texto javascript • comprobar campos formulario mientras se rellenan javascript • validar formulario con jquery marcado de borde del input • script externos con javascript para validar campos • css: validacion formulario • contar fieldset jqeury • validar fieldset • onkeypress correo electronico • validar telefonico js mientras escribe • validar un telefono con masked input jquery • validar correo electrónico jquery keypress • validar un formulario mientras se escribe • validar formularios personalizada con javascript • javascript validar email keypress • errorclass jquery validate • input onkeypress html validaciones • validar datos mientras se escribe • validar input java color • validar formulario javascript que se restablecen • validacion de input text mientras escribe • onkeypress validar correo • validar formularios con jquery keypress • antes de enviar con onclick validar con jquery • validar keypress input text • validacion de formularios con estilos • crear validacion personalizada vjquery • validar email mientras javascript • validar form css 3 color red • verificar si se escribe sobre un campo jquery • javascript crear campos formulario mientras escribe • validacion con type hidden en javascript • como validar los formularios obligatorios en javascript • recorrer y sumar elementos de formulario javascripts# • script validacion formulario antes enviarlo • ejemplo javascript validar telefono • validar formulario con estilo • validacion personalizada jquery • como validar los elementos de un fielset con jquery • onkeypress javascript validar correo email • jquery todos los input type text rellenos • validar campo telefono javascript • validar texto mientras se escribe input • validar correo javascript • validar texto en campo de texto mientras se escribe javascript • revalidar campo validation jquery • validacion formularios javascript onkeypress • llamar funcion antes de enviar formulario javascript • validar telefono getelementbyid javascript • validacion expresion regular javascript onkeypress • comprobar campo relleno con expresiones regulares javascript • validacion de formularios con keypress • ejemplo validar campo en formulario mientras se rellena • ejemplo de masked input en formularios de validacion • formulario this id • validar telefono con css • javascript validar campo mientras escribe • Validar correo campo de texto mientras se escribe • jquery fieldset • errorclass jquery • jquery inhabilitar formularios hasta que no rellenes otro • sumar campos jquery validate • javascript creacion de mascaras mientras escribe • formato mientras se escribe input • mascaras con expresiones regulares en jsp con javascript para validar telefono • onkeypress javascript telefono • jquery maskedinput expresion regular • function valida_envia var nombre=document fvalida nombre value • validar formulario jquery expresiones regulares • contar elementos fieldset jquery • validacion de campos con javascript expresiones regulares onkeypress • class=error style=display:none validate • validar correo electronico onkeypress • validar input mientras escribes • validar un campo de texto en jsp utilizando Keypress • validacion de formularios mientras se escribe • validar correo en onkeypress • validar correo javascript onkeypress • validar campo de texto javascript jquery • validacion jquery numeros onkeypress • stilos de validacion de formularios • recorrer los elementos de un fieldset • validacion personalizada en html5 • validar formulario fieldset • validacion personalizada formulario • validar campos en javascript con onkeypress • validar formularios email mientras escribes • jquery validaciones personalizadas • validar que textarea • javascript validacion mensaje error style hidden • onkeypress validar tamaño javascript • Validación personalizada de formulario css • jquery keypress validar • mascara campo telefono formato eu javascript • formularios javascript y validar campos • validar un formulario javascript • activar el boton si el form es correcto jquery validate • kitar la validacion de keypress jquery • onkeypress validar email •
acordeón actionscript ajax alert ampliar imágenes android antes y después as audio aumentar letra barra desplazamiento blur bordes redondeados botón derecho calcular distancia calendario chart chrome collapse columnas combobox contar caracteres contar followers contextual css cu3er códigos date-picker descargas desenfoque desplazamiento dhtml disminuir letra dominios editor enlaces externos error 404 estrellitas expander fade fecha file upload filtrar contenido flash font size formulario formularios fotografías fpdf frames galería gmail google google docs gratis headers htaccess html html5 iconos ie6 igualar columnas inyección cabeceras ipad iphone javascript jquery jquery ui json lavalamp librería librerías lightbox limitar caracteres links lista listas listbox mail injection maquetación marcos mensajes menu menú menú lateral miniaturas mootools mouseover mp3 multinivel mysql máscaras móvil navegadores no conflict notas adhesivas notificaciones oauth ofuscador ordenar organigrama pdf php phpmailer picker player playlist plugin png portfolio preview reproductor reproductor de música safari scroll scrollto select selector de color sistema de votación slider snippets spam star rating subir ficheros switch mode tablas tamaño texto target blank textarea thumbnail tooltip twitter usuarios activos validacion validación validate videos vtip wap webkit www wysiwyg youtube zoom

© 2012 Martin Iglesias - Todos los derechos reservados