Eu configurei um modal de bootstrap com um formulário dentro dele, só notei que quando pressiono a tecla Enter, o modal é dispensado. Existe uma maneira de não dispensá-lo ao pressionar Enter?
Tentei ativar o modal com o teclado: falso, mas isso só impede a dispensa com a tecla ESC.
forms
twitter-bootstrap
modal-dialog
Luke Morgan
fonte
fonte
Respostas:
Eu também tive esse problema.
Meu problema era que eu tinha um botão Fechar no meu modal
Pressionar enter no campo de entrada fez com que este botão fosse disparado. Em vez disso, mudei para uma âncora e agora funciona como esperado (enter envia o formulário e não fecha o modal).
Sem ver sua fonte, não posso confirmar se sua causa é a mesma.
fonte
Basta adicionar o atributo type = "button" ao elemento de botão, alguns navegadores interpretam o tipo como envio por padrão.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Attributes
Isso se aplica a todos os botões que você possui no modal.
fonte
Eu tive esse problema mesmo depois de remover TODOS os botões do meu Bootstrap Modal, então nenhuma das soluções aqui me ajudou.
Descobri que um formulário com um único campo de texto faria com que o navegador enviasse um formulário (e resultaria em dispensar), se você pressionasse Enter enquanto o foco do teclado estivesse no campo de texto. Isso parece ser mais um problema de navegador / formulário do que qualquer coisa com o Bootstrap.
Minha solução foi definir o atributo onsubmit do formulário para onsubmit = "return false"
Isso pode ser um problema se você estiver realmente usando o evento submit, mas estou usando estruturas JS que geram solicitações AJAX em vez de enviar um navegador, então prefiro desabilitar totalmente o submit. (Isso também significa que não preciso ajustar manualmente cada elemento do formulário que pode acionar um envio).
Mais informações aqui: Diálogos modais de bootstrap com um único campo de entrada de texto sempre dispensados na tecla Enter
fonte
type="button"
em todos os meus botões fechar / cancelar, mas ainda tinha esse problema com a tecla Enter fechando meu modal. Eu tinha apenas 1 campo de texto de entrada no meu modal e sua solução corrigiu isso. Obrigado pela sua resposta!Você pode colocar o botão de login antes do botão cancelar e isso resolveria o problema que você está tendo também.
fonte
Eu tive o mesmo problema, e resolvi com
mas há mais uma solução, você pode adicionar uma entrada invisível fictícia, para que seu formulário fique assim:
fonte
Tive uma experiência semelhante agora e a forma como resolvi foi, em vez de usar uma tag, mudei a tag para uma tag com type = "botão". Isso pareceu resolver o problema de pressionar a tecla "enter" e descartar o modal de bootstrap.
fonte
Eu também tive esse problema e resolvi dessa forma. Eu adicionei onsubmit ao formulário. Eu também queria ser capaz de usar a tecla enter como chave de salvamento, então adicionei save_stuff () javascript ao onsubmit. retorna falso; é usado para evitar o envio do formulário.
fonte