Ir para o conteúdo

 Voltar a Fórum do For...
Tela cheia

botão Ajax - verificações antes e depois da ação

5 de Fevereiro de 2015, 10:36 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 52 vezes

Prezados,

 

Estou usando botão ajax, mas estou com uma dúvida em como efetuar verificações antes de chamar ações de um botão e após de chamá-lo. Vide código abaixo:

$frm->addButtonAjax('Pré-baixar',NULL,NULL,'depoisSalvar','preBaixar','transferindo ...','json',false,null,'btnPreBaixar','Deseja transferir?',false,false)->setVisible(FALSE);

function depoisSalvar() {
    //inibe campos para que o usuario crie um processo de baixa para n materiais
        jQuery("#gpPreBaixa_area").hide();
        jQuery("#txt_processo_label").hide();
        jQuery("#txt_processo_area").hide();
        jQuery("#dat_label").hide();
        jQuery("#dat_area").hide();
        jQuery("#btnPreBaixar_area").hide();
    }

A função depoisSalvar deveria inibir parte do meu form. Isto ocorre só que ele também "mata" algumas validações que são feitas no arquivo preBaixar.php como por exemplo verificar se txt_processo_area e dat_area estão vazios e se dat_area é menor ou igual a data atual.

Peço orientação quanto a melhor forma de utilizar este botão.

 

Desde já, obrigada pela ajuda,

Aline.

Autor: Paiva Macena


22 comentários

  • 51b06d6eae66e2cfdfc361d418eea715?only path=false&size=50&d=404Luis Eugênio barbosa(usuário não autenticado)
    6 de Fevereiro de 2015, 21:48

     

    Aline,

    o botão ajax possui os parâmetros $strJsBeforeSend e $strJsCallback,ambos são nomes de funções javascrits que são chamadas antes da requisição ajax e o outro no retorno da execução.

    Todas a validações devem ser feitas na função informada no parâmetro $strBeforeSend que deverá retornar true ou false.

    E tudo que for retornado da execução será recebido na função informada no parâmetro strJsCallback, no formato text ou json de acordo com o que for informado nos parâmetros de criação do botão.

    O Botão ficaria assim:

    $frm->addButtonAjax('Pré-baixar',NULL,'antesSalvar','depoisSalvar','preBaixar','transferindo ...','json',false,null,'btnPreBaixar','Deseja transferir?',false,false);

    No seu exemplo a função de validação poderia ser assim:

    function antesSalvar()
    {
        /*
        if( ! jQuery("#txt_processo").val() )
        {
            fwAlert( 'Informe o número do processo!');
            return false;
        }
        if( ! jQuery("#dat_area").val() )
        {
            fwAlert( 'Informe a data!');
            return false;
        }
        return true;
        */

        /*
        ou então você poderá utilizar a função fwValidateFields() se
        os campos forem criados no formulário como obrigatórios
        */
        return fwValidateFields('txt_processo,dat_area');
    }

    Abraço

Essa comunidade não possui posts nesse blog