Estou criando uma janela modal usando o Twitter Bootstrap. O comportamento padrão é que, se você clicar fora da área modal, o modal será fechado automaticamente. Gostaria de desativar isso - ou seja, não fechar a janela modal ao clicar fora do modal.
Alguém pode compartilhar o código jQuery para fazer isso?
jquery
twitter-bootstrap
modal-dialog
mouseclick-event
user1296175
fonte
fonte
Respostas:
Acredito que você deseja definir o valor do pano de fundo como estático . Se você quiser evitar que a janela se feche ao usar a Escchave, é necessário definir outro valor.
Exemplo:
OU se você estiver usando JavaScript:
fonte
Basta definir a
backdrop
propriedade para'static'
.Você também pode definir a
keyboard
propriedade como,false
porque isso impede que o modal seja fechado pressionando a Esctecla no teclado.myModal
é o ID da div que contém seu conteúdo modal.fonte
backdrop
ekeyboard
são mencionados aqui em sua documentação na seção Opções .Você também pode incluir esses atributos na própria definição modal:
fonte
Se você já inicializou a janela modal, convém redefinir as opções com
$('#myModal').removeData("modal").modal({backdrop: 'static', keyboard: false})
para garantir que as novas opções serão aplicadas.fonte
Substitua o evento Bootstrap 'hide' do Dialog e interrompa seu comportamento padrão (para descartar o diálogo).
Veja o trecho de código abaixo:
Funciona bem no nosso caso.
fonte
Sim, você pode fazer assim:
fonte
Como a resposta de @ AymKdn, mas isso permitirá que você altere as opções sem reinicializar o modal.
Ou, se você precisar fazer várias opções, o JavaScript é
with
útil aqui!Se o modal já estiver aberto, essas opções entrarão em vigor na próxima vez em que o modal for aberto.
fonte
Basta adicionar essas duas coisas
Vai ficar assim agora
Ele desativará o botão de escape e também o clique em qualquer lugar e ocultará.
fonte
Você pode desativar o comportamento de clicar para fechar o plano de fundo e torná-lo o padrão para todos os seus modais adicionando esse JavaScript à sua página (verifique se ele é executado após o carregamento do jQuery e do Bootstrap JS):
fonte
Como o D3VELOPER diz, o seguinte código o resolve:
Estou usando jquery e bootstrap e simplesmente
removeData('modal')
não funciona.fonte
O melhor que encontrei é adicionar este código ao link
fonte
Caso alguém venha aqui do Google tentando descobrir como impedir alguém de fechar um modal, não esqueça que também há um botão Fechar no canto superior direito do modal que precisa ser removido.
Eu usei algum CSS para escondê-lo:
Observe que usar "display: none;" é substituído quando o modal é criado, portanto, não use isso.
fonte
Se você deseja desabilitar condicionalmente o
backdrop click closing
recurso. Você pode usar a seguinte linha para definir abackdrop
opçãostatic
durante o tempo de execução.Bootstrap v3.xx
Bootstrap v2.xx
Isso impedirá o fechamento de um modelo já instanciado com a
backdrop
opção definida comofalse
( o comportamento padrão ).fonte
Você pode definir o comportamento padrão do pop-up modal usando a linha de código abaixo:
fonte
Fazer isso é muito fácil hoje em dia. Basta adicionar:
No seu divisor modal.
fonte
Bem, esta é outra solução que alguns de vocês podem estar procurando (como eu estava ..)
Meu problema era semelhante, a caixa modal estava fechando enquanto o iframe que eu tinha dentro estava carregando, então tive que desativar a dispensa modal até que o iframe terminasse de carregar e reative-o.
As soluções apresentadas aqui não estavam funcionando 100%.
Minha solução foi esta:
Portanto, impeço temporariamente que o Modal se feche com:
Mas com o var is_loading que permitirá o fechamento após o carregamento do Iframe.
fonte
fonte
Para atualizar o estado do pano de fundo no Bootstrap 4.1.3 após a exibição do modal, usamos a seguinte linha do plugin Bootstrap-Modal-Wrapper . Referência de código do repositório de plugins .
fonte