Programación Web y Scripting > JavaScript

 Validación Con Javascript

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa