Cuando trato de obtener el valor de texto del texto de entrada, el valor devuelto es "indefinido". Esta función devuelve: "nombre de usuario: indefinido" y mi texto de entrada tiene un valor.

this.loadForm = function() {

        $("#response-container").load("formLogin.php", function() {

            $("#formLogin").submit(function(event) {

               var user = $("#username").val();

                alert("username: "+user);

                event.preventDefault();    

            });

        });

    }; //END loadForm FUNCTION

FormLogin.php

<form id="formLogin" method="get" action="20.html">
    USERNAME:
    <br>
    <input type="text" name="username" />
    <br> PASSWORD:
    <br>
    <input type="password" name="password" />
    <br>

    <br>
    <input type="submit" value="Log in" name="login" id="btnInputLogin" onsubmit="return false" />
</form>
-1
Sergio Diaz 13 ene. 2017 a las 22:53

4 respuestas

La mejor respuesta

Comprueba tu selector

Debe usar un atributo id si está utilizando la sintaxis $('#id') en jQuery ya que # indica que está apuntando explícitamente a un elemento con el atributo id que sigue al Carácter #:

<input type="text" id='username' name="username" />

Si desea hacer referencia a algo por un nombre, deberá usar un atributo es igual al selector para apuntar explícitamente el atributo de nombre:

var user = $('[name="username"]').val();
1
Rion Williams 13 ene. 2017 a las 19:57

Reemplazar:

<input type="text" name="username" />

Para

<input type="text" name="username" id="username"/>
1
squiroid 13 ene. 2017 a las 19:56

Parece que su jquery aquí: $("#username").val(); está tratando de obtener una identificación que no existe.

Puede agregar una identificación a la entrada de contraseña <input id="password"> que debería funcionar.

O puede obtenerlo con el nombre actual $('[name="password"]').val()

0
hdennen 13 ene. 2017 a las 20:01

No hay entrada con #username. Agregue ese atributo id o use

$('input[name="username"]')
1
Adam Azad 13 ene. 2017 a las 19:56