Programación Web y Scripting > JavaScript
Validación Con Javascript
Manuel Castro Gómez:
Buenas amigos de SoloCodigo:
Tengo un formulario con n cantidad de InputText y me gustaría poder validar cada uno de ellos individualmente una vez que pierden el enfoque (onBlur); si alguno no pasa la regla de validación quisiera que se quedara en el control. No lo he conseguido debido a que tengo poca experiencia en Java.
Lo he intentado poniendo una funcion como esto:
function ValidarCampoNulo(IdCampo)
{ if (document.getElementById(IdCampo).value == "00000000" ||
document.getElementById(IdCampo).value == NULL)
{ document.getElementById(IdCampo).focus()
return FALSE}
}
Ésta función la pongo para que se abilite en el evento onBlur de cada control del formulario pasándole como parámetro el "Id" del control que quiero validar, pero no logro el resultado deseado, o sea no hace nada.
¿Qué estoy haciendo mal?
Les agradezco de antemano su valioso apoyo.
Mollense:
Pues yo no te recomiendo que lo hagas de esta manera ya que si un usuario tiene que realizar otra acción no va a poder salir del campo input en el que esté. Te recomiendo que valides todo junto cuando se precione el botón submit o se precione enter en algún campo así:
--- Código: Text ---<script language="JavaScript"> function frmLogueo(){ if(document.logueo.usuario.value==""){ alert("Ingrese su nombre de usuario antes de continuar"); return false } if(document.logueo.clave.value==""){ alert("Ingrese su clave antes de continuar"); return false } return true }</script> <HTML> <HEAD> <title>........................</title> <HEAD> <BODY> <FORM name="logueo" action="Acceso.asp" Method="POST" onSubmit="return frmLogueo()"> <table> <TR> <TD><label for="usuario">Usuario:</label></TD> <TD><INPUT TYPE=Text Name=usuario ></TD> </TR> <TR> <TD><label for="clave">Clave:</label></TD> <TD><INPUT TYPE=password Name=clave></TD> </TR> <TR> <TD colspan=2><INPUT TYPE=Submit Value="Aceptar"></TD> </TR> </Table> </FORM> </BODY></HTML>
Manuel Castro Gómez:
Te agradezco la sugerencia que me das, aunque ya la habia pensado. Solo por curiosidad ¿cómo puedo lograr lo que me había propuesto antes?
Disculpa tanta ignorancia. Gracias de nuevo.
Mollense:
En ese caso debes llamar al script frmLogueo() desde algún evento que capture la salida del cursor del textbox: "OnBlur".
Algunos eventos (Se que anda en IE pero no se que tal los demás, yo no conozco los estándares y microsoft tampoco):
--- Código: Text --- OnFocus Obtención del FocoOnBlur Pérdida del FocoOnClick ClickOnMouseUp Cuando se suelta un Botón del MouseOnMouseDown Cuando se Oprime un Botón del MouseOnMouseOver Cuando el puntero pasa sobre un objeoOnMouseOut Cuando el puntero sale de un objeoOnLoad Cuando se carga un Objeto WindowOnUnload Cuando se descarga un Objeto WindowOnError Cuando sucede un error en el objeto
ArKaNtOs:
estoy conjeturando porque no tengo mucho tiempo pero yo lo haría así:
function valida(indice){
if(document.nombredemiform[indice].value=""){
alert("Este campo debe contener info");
document.nombredemiform[indice].focus();
}
}
<form name='nombredemiform'....>
<input type='text' name="..." onblur="valida(0)"/>
<input type='text' name="..." onblur="valida(1)"/>
<input type='text' name="..." onblur="valida(2)"/>
</form>
Espero haber sido de utilidad, bye ;)
Navegación
[#] Página Siguiente
Ir a la versión completa