Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo de Tarso F. M.

Não executar submit do form mas executar callback - jQuery + Bootbox

Recommended Posts

Pessoal, estou com o seguinte problema, tenho um formulário que não pode ser submetido, não posso usar um action, mas preciso fazer com que o submit possa ocorrer, sem finalizar, mas preciso executar um callback no meio do caminho e não estou conseguindo...

 

Estou tilizando o http://bootboxjs.com/ e nele tem a função customizável, que é a que estou utilizando:

bootbox.dialog({
    message: "I am a custom dialog",
    title: "Custom title",
    buttons: {
        success: {
            label: "Success!",
            className: "btn-success",
            callback: function() {
                Example.show("great success");
            }
        }
    }
});

O que preciso: executar o callback do botão, só que esse callback é focar o campo caso ele esteja vazio:

jQuery(function($) {
    $('#form').submit(function() {
        // Se não preencher o campo, quero exibir um alert mas não é o alert padrão...
        if($('#campo').val() == '') {
            bootbox.dialog({
                message: "Preencha o campo!",
                title: "Erro",
                buttons: {
                    danger: {
                        label: "Fechar",
                        className: "btn-danger",
                        callback: function() {
                            $('#campo').focus(); // <-- Preciso que ISSO seja executado!
                        }
                    }
                }
            });
        }
        return false; // Não posso permitir o submit do form...
    });
});
Alguém tem alguma ideia de como fazer ou o que estou fazendo errado? O que acontece é que, após clicar no botão "Fechar" do alert personalizado, o focus não ocorre... Se eu faço isso tudo sem ser no submit do form, por exemplo, no click do button, ok, funciona porque ao clicar em um button por padrão nada acontece, mas no caso do form não...

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, agora acho que fica mais fácil de entender o problema... O que preciso é focar o campo após o fechamento da janela modal. Vejam no link abaixo:

 

:seta: http://jsfiddle.net/gmrk7o11/

 

Estou utilizando Bootstrap e Bootbox.js

 

Se alguém puder me ajudar... Vejam que ao clicar no botão "OK" da janela modal, o campo não é focado de jeito nenhum... Como fazer isso acontecer?

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,

jQuery("#name").on('click mousedown mouseup focus keydown change blur', function(e) {
     console.log(e);
});

Ele está disparando um evento de blur e um de focus, mas por alguma maneira o blur que é disparado antes está cancelando o focus.

 

Infelizmente, até o momento não sou alto suficiente para resolver isto ;/. Perdão :(

 

Se eu conseguir encontrar algo, eu avisarei.

Se você encontrar algo, poderia postar a solução aqui?!

 

edit

---------

 

Cara, o blur está sendo lançado antes, mas o blur está sendo executado depois:

blur : timeStamp: 1416002962204

focus : timeStamp: 1416002962163

 

Vai entender...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.