Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2012, 05:32
kies89
 
Fecha de Ingreso: septiembre-2012
Ubicación: Madrid
Mensajes: 89
Antigüedad: 11 años, 8 meses
Puntos: 1
Pregunta [ERROR] onClick + .submit

Hola forosdelweb :).
Miren, este código lo que hace es, que si todos los campos (username y password) tienen datos (aunque sea un simple espacio), cuando se presiona el botón "entrar", javascript usa .submit para que se envíe a PHP el form. Todo bien, lo que pasa es que en el evento onClick, al haber luego un return false (que pongo para que si los datos son incorrectos, no envíe el form a PHP), pues nunca envía el form a PHP estén todos los campos rellenados o no.

He probado con onClick="if (condición) return true; else return false;", pero nada...

Agradezco mucho la ayuda que me puedan brindar.
Gracias de antemano.





Código:
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>  
  
  <script type="text/javascript">  
  function addContent(divName, content)
  {
    document.getElementById(divName).innerHTML += content;
  }


  function loggear()
  {
    var errorDescription='Faltan datos';

    document.getElementById('usernameError').innerHTML = '';
    document.getElementById('passwordError').innerHTML = '';

    if ( document.getElementById('username').value == '' )
    {
      document.getElementById('usernameError').innerHTML = errorDescription;
	}
    if ( document.getElementById('password').value == '' )
	{
      document.getElementById('passwordError').innerHTML = errorDescription;
	}
	
    if ( (document.getElementById('username').value && document.getElementById('password').value) != '' )
    {
      boton = document.getElementById('entrar');
      padre = boton.parentNode;
      padre.removeChild(boton);
      // Poner una imagen de "cargando" en su lugar
      addContent('midiv', '<img src="/cargando.gif"/><p>Iniciando sesión...</p>');


      document.forms['loggingForm'].submit();
    }
  }
  </script>
</head>
<body>






  <div id="midiv">
      <form name="loggingForm" method="post">
        <input name="user" type="text" id="username" placeholder="Usuario" /><p id="usernameError"></p>
        <input name="pass" type="password" id="password" placeholder="Contraseña" /><p id="passwordError"></p>
	    <button name="entrar" id="entrar" type="submit" onClick="loggear(); return false;">Entrar</button>
      </form> <!-- si quito el return false FUNCIONA a la perfección con el código original, perosi los datos son incorrectos (si no ha introducido usuario o contraseña) te loggea con el PHP igualmente -->
  </div>
</body>
</html>



<?php
if ( isset($_POST['entrar']) ) // Si pulsamos el botón "entrar"
{
  ?><script type="text/javascript">alert('user correcto');</script><?php
}
?>