Submit only runs once

0
$(document).ready(function(){
    //Função que ao clicar no botão, irá fazer.
    $("#logarsist").click(function(){
        var usuario = $("#usera").val();
        var password = $("#pass").val();

        if(usuario == ''){
            $("#formulariousuario").html("Campo Obrigatório*");
            setTimeout(function(){$("#formulariousuario").hide();}, 6000);};

        if(password == ''){
            $("#formulariopassword").html("Campo Obrigatório*");
            setTimeout(function(){$("#formulariopassword").hide();}, 6000);};

        return false;
    });
});
    
asked by anonymous 20.04.2017 / 02:02

1 answer

0

By the description you gave me in your question, the code is running, but you forgot to re-display the divs you hid.

I think this solves your problem:

$(document).ready(function()
{
    $("#logarsist").click(function()
    {
        var usuario = $("#usera").val();
        var password = $("#pass").val();

        if(usuario == '')
        {
            $("#formulariousuario").html("Campo Obrigatório*");
            $("#formulariousuario").show(); // também pode usar o fadeIn()
            setTimeout(function()
            {
                $("#formulariousuario").hide(); // também pode usar o fadeOut()
            }, 6000);
        };

        if(password == '')
        {
            $("#formulariopassword").html("Campo Obrigatório*");
            $("#formulariopassword").show();

            setTimeout(function()
            {
                $("#formulariopassword").hide();
            }, 6000);
        };

        return false;
    });
});

With a little more customization in your code you get some better results. See:

$(document).ready(function()
{
    var timeout = null;

    $("#logarsist").click(function()
    {
        var usuario = $("#usera").val();
        var password = $("#pass").val();

        if(usuario == '')
        {
            $("#formulariousuario").html("Campo Obrigatório*").show();
        };

        if(password == '')
        {
            $("#formulariopassword").html("Campo Obrigatório*").show();
        };

        // Cancele o timeout para evitar que ele oculte suas divs em momentos inesperados
        clearTimeout(timeout);
        timeout = setTimeout(function()
        {
            // Acrescente a classe "error" nas divs que deseja exibir as mensagens de erro.
            $('.error').hide();

        }, 6000);

        // Você só deve retornar false se o form tiver erros ou for chamar outra função para realizar o envio do formulário.
        return false;
    });
});

Using a class selector and adding the class to your HTML, you avoid unnecessary code, and you can have a more unified treatment.

JQuery also allows you to combine multiple methods into a single selector, reducing processing by fetching the element again and reducing its code.

    
20.04.2017 / 06:22