validar campos en formulario (jsp)

jonathantr

Lanero Regular
6 Abr 2008
19
hola a todos

Estoy haciendo una aplicacion web y estoy tratando de validar los datos de un formulario de registro de usuario pero la verdad no sé cómo hacer esto.

Estoy insertando algo de javascript en jsp para mostrar alertas notificándole al usuario que hay campos sin llenar pero esto no me funciona. Lo que hace es mostrarme la alerta pero después me muestra una página en blanco y lo que yo quiero es que el usuario permanezca en la ventana de registro.

La alerta en javascript que estoy mostrando es la siguiente:

<script languaje='javascript'>alert('Datos incompletos')</script>

Quisera que alguien me ayudara a validar los campos de una manera más sencilla y por supuesto que haga lo que yo quiero. Por ejemplo, necesito validar que en un campo sólo se digiten números, tambien necesito validar que una fecha se haya escrito correctamente, etc.

Gracias.
 
Hola

Lo mejor que puede hacer es utilizar un framework que le permita usar validadores como icefaces. En el siguiente link encuentra un tutorial de como implementarlos. http://facestutorials.icefaces.org/tutorial/validators-tutorial.html

Si no quiere utilizar lo anterior y quiere hacer con javascript lo que debe hacer en el boton de submit es tener una funcion que le valide y no haga submit en caso que no tenga los campos que quiere validar. Por ejemplo puede hacer tener en su jsp lo siguiente:

<input name="Submit" type="submit" value="Enviar" onclick="return validar()"/>

La funcion lo que hace es validar que los campos esten llenos y deja continuar el submit en caso de que todo sea valido. A continuación el ejmplo de la funcion javascript:

function validar(){
var texto = document.getElementById("textoEjemplo");
if (texto.length == 0){
alert("Datos imcompletos");
return false;
}
else return true;
}
 
te cuento que yo estoy haciendo lo siguiente y no me funciona:

<form id="form1" name="form1" method="post" action="">
<p>
<input name="nombre" type="text" id="nombre" />
<input name="Submit" type="submit" id="enviar" value="Enviar"
onclick= "return validar()" />
</p>
</form>


<script language="javascript" type="text/javascript">
function validar() {
var texto=document.getElementById("nombre")

if (texto.length ==0){

alert("Tiene que escribir su nombre")
return false;
}
else{
return true;
}

}
</script>

-----------------
no sé en qué parte estoy fallando.

en qué parte de la página debo ubicar el codigo correspondiente a la funcion?
 
Hola

1. El orden correcto para poner los script es dentro del tag de "HEAD", pero creo que esto no importa donde lo ubique. El orden normal es el siguiente:

Código:
<HTML>
   <HEAD>
	<SCRIPT type=text/javascript>function a(){}</SCRIPT> 
   </HEAD>
   <BODY> 
   </BODY>
</HTML>

2. Creo que no sirve es porque no esta encontrando el elemento "nombre". Lo que debe hacer en la funcion es incluir "window".

Código:
      var texto=window.document.getElementById("nombre")

Me cuenta si le sirvio.

Salu2
 
sin window... lo que debes hacer es cuando hagas el validar() hacer algo como:

<input name="Submit" type="submit" id="enviar" value="Enviar" onsubmit="validar();" />
ó
<input name="Submit" type="button" id="enviar" value="Enviar" onclick="if(validar()){this.submit();}" />

Ahora, el java puede ir en cualquier parte no solo en el header
 
muchas gracias por su colaboración, me ha servido de mucho.

me he puesto a estudiar javascript y e podido resolver la mayoria de dudas que tenía.
 

Los últimos temas