Estou criando um site de bootstrap, com alguns 'Modais' de bootstrap. Estou tentando personalizar alguns dos recursos padrão.
O problema é esse; Você pode fechar o modal clicando no fundo. Existe alguma maneira de desativar esse recurso? Apenas em modais específicos?
javascript
css
twitter-bootstrap
modal-dialog
Egghead
fonte
fonte
Respostas:
No capítulo Opções, na página que você vinculou, você pode ver a
backdrop
opção. Passar essa opção com valor'static'
impedirá o fechamento do modal.Como o @PedroVagner apontou nos comentários, você também pode passar
{keyboard: false}
para impedir o fechamento do modal pressionando Esc.Se você abrir o modal por js, use:
Se você estiver usando atributos de dados, use:
fonte
$('#modal').modal('show');
Espero que isso ajude!Este é o mais fácil
Você pode definir seu comportamento modal, definindo teclado de dados e cenário de dados.
fonte
data-backdrop="static"
opção na definição modal, não no botão de acionamento que abre o modal conforme especificado em outras respostas, funcionou para mim.Você pode usar um atributo como este:
data-backdrop="static"
ou com javascript:Consulte esta resposta também: Não permitir que a janela modal de inicialização do twitter seja fechada
fonte
No meu aplicativo, estou usando o código abaixo para mostrar o modal Bootstrap via jQuery.
fonte
Você pode usar
para alterar o comportamento padrão.
fonte
Há duas maneiras de desativar o clique fora da área do modelo de auto-inicialização para fechar o
usando javascript
usando atributo de dados na tag HTML
fonte
Veja isso ::
fonte
Outra opção se você não sabe se o modal já foi aberto ou ainda não e precisa configurar as opções modais:
Altere as opções para _config
fonte
_setEscapeEvent()
vez de.escape()
?A solução que funciona para mim é a seguinte:
pano de fundo: desativado o evento clique fora
keyboard: desativou o evento de palavra-chave scape
fonte
tente isso, durante o desenvolvimento do aplicativo ... Também encontrei o problema de que os valores padrão para um atributo de modelo =>
data-keyboard="true"
, =>data-backdrop="non static"
Espero que isso ajude você!
fonte
Tente o seguinte:
fonte
nenhuma dessas soluções funcionou para mim.
Eu tenho um modal de termos e condições que eu queria forçar as pessoas a revisar antes de continuar ... os padrões "estático" e "teclado", conforme as opções, tornaram impossível rolar a página, pois os termos e condições são algumas páginas log, estática não foi a resposta para mim.
Então, em vez disso, desativei o método click no modal, com o seguinte consegui o efeito desejado.
$('.modal').off('click');
fonte
TLDR
backdrop: 'static'
https://getbootstrap.com/docs/3.3/javascript/#modals-options
fonte
fonte
Se você estiver usando o @ ng-bootstrap, use o seguinte:
Componente
Modelo
Este código foi testado no angular 9 usando:
"@ ng-bootstrap / ng-bootstrap": "^ 6.1.0",
"bootstrap": "^ 4.4.1",
fonte
Use isso se desejar desativar o clique externo para todos os modais usando o jQuery. Adicione este script ao seu Javascript após o jQuery.
fonte
Você também pode fazer isso sem usar o JQuery, assim:
fonte
Adicione o css abaixo conforme sua largura de tela.
fonte