Reset button text via Javascript

1

Well, I do not know if my title is related to what I'm asking for, but I have a form with an Enter button.

<button id="btn_entrar" data-loading-text="carregando..." autocomplete="off" class="btn btn-primary btn-cons m-t-10" type="submit" onclick="return Get_Acesso();">Entrar</button>

And when I enter login and password I want this button to be "loading ..." I searched the internet and saw this case:

  $('button[data-loading-text]').on('click', function () {
    var btn = $(this)
    btn.button('loading')
    setInterval(function () {
        btn.button('reset')
    }, 3000)
});  

But I do not want a definite time (in the case 3 seconds) I want it to reset after my function GetAcesso() give some return is false or true. Does anyone know a solution?

function Get_Acesso(){
    usuario = document.getElementById('txt_user_name').value;
    senha = document.getElementById('txt_password').value;

    LoginDTO.Usuario = usuario;
    LoginDTO.Senha = senha;

    var DTO = { 'LoginDTO': LoginDTO};
    //acessar login
    $.ajax({
        type: "POST",
        url: "default.aspx/Acesso_Login",
        data: JSON.stringify(DTO),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: function () { 
            $('#btn_entrar').html('Carregando...');
        },          
        success: function (msg) {
            $('#btn_entrar').html('Entrar');
            try {
                //tratamentos de msg
                if (msg.d == "err") {
                    document.getElementById('spn_retorno').innerHTML = "Erro inesperado no momento do acesso.";
                    return false;
                    //Não encontrou nenhum registro
                } else if (msg.d == "not") {
                    document.getElementById('spn_retorno').innerHTML = "Usuário / senha inválido.";
                    return false;
                    //Campos vazios
        }

Simple access code, but I want it to return when the error returns with the default "Enter" button.

    
asked by anonymous 19.01.2016 / 12:40

2 answers

2

Before success: function (msg) you can put one:

beforeSend: function(){ // Ou seja, 'antes de enviar'
    $('#btn_entrar').html('Carregando...');
},
success: function(msg){
    $('#btn_entrar').html('Entrar'); // Volta o botão no seu valor normal
}
    
19.01.2016 / 13:03
1

One option would be to make the request via ajax, so you would call the reset function after the response. Not knowing what this GetAcesso function is like, I imagine the best way to do it would be like this:

$.ajax({
    //Os seus parametros para verificar o usuario e senha
        data: parametros,
    //sera usado o método get
        method : 'get',
    //a url que queremos requisitar
        url    : 'requisitada.html',
    //o tipo da requisição
        dataType: 'html',
    //aqui é onde pegamos o retono da requisição
        success : function(retorno){
    //Aqui você coloca a função de resetar o texto do botão.
            ResetaTexto();
        }
    }); 

It was just an example to have at least one base. I think it's the best way.

    
19.01.2016 / 12:50