Pregunta

Estoy intentando escribir un script que valide la entrada del usuario.Como:longitud de letra superior a 5 o contraseña y contraseña reingresada coincidentes.Pero, ¿cómo puedo saber en qué cuadro de entrada del formulario se hizo clic?solía

$(function() {
    $('#register input').keyup(function() {
        if ($('#username').val().length < 5) {
            $('a.username').text("Please fill");
        } else {
            $('a.username').text("");
        }

        if ($('#password').val().length < 5) {
            $('a.password').text("asdasd");
        } else {
            $('a.password').text("");
        }

    });
});​

Y

Nombre de usuario de nuevo usuario

        <label for="password">Password</label> <input type="password" id="password" name="password"><a class="password"></a>

    </fieldset>
</form>

Cuando hago clic en uno de los elementos de entrada, el código se ejecuta y ve que la segunda entrada de contraseña tampoco está completa y la segunda <a> La etiqueta también se activa.¿Debo usar varios? .keyup funciones para cada elemento, o ¿hay algún método para hacer clic en qué elemento?Como

if (clicked == $("input#username") && $('#username').val().length < 5) {
    $('a.username').text("Please fill");

} else {
    $('a.username').text("Please fill");

}​

Pero esto no funciona.Creo que debería haber algo similar.

¿Fue útil?

Solución

Puedes usar $(this) dentro del controlador para referirse al elemento que keyup el evento ocurrió el.Además, puedes utilizar .next() para pasar de ella a la <a> estás configurando el texto de, así:

$('#register input').keyup(function(){
  $(this).next().text($(this).val().length < 5 ? "Please fill" : "");
});

Otros consejos

Como regla general, debe utilizar el enlace de eventos específicos si desea obtener eventos específicos, en lugar de obtenerlos todos y realizar su propio filtrado.(Si quisieras hacerlo de otra manera, querrás mirar cualquiera this, $(this) o el evento, dependiendo.)

Sin embargo, para la validación del formulario, ya existe un código para hacerlo.Por ejemplo, el complemento de validación jQuery para la validación de formularios generales, y un extensión específica para contraseñas.En tu lugar, al menos comenzaría con uno de esos en lugar de construir cosas desde cero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top