Estou tentando adicionar validação ao meu formulário com o plug-in de validação jQuery, mas estou tendo um problema em que o plug-in coloca as mensagens de erro quando estou usando grupos de entrada.
$('form').validate({
rules: {
firstname: {
minlength: 3,
maxlength: 15,
required: true
},
lastname: {
minlength: 3,
maxlength: 15,
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
}
});
Meu código: http://jsfiddle.net/hTPY7/4/
twitter-bootstrap
jquery-validate
twitter-bootstrap-3
Miguel Borges
fonte
fonte
Respostas:
para total compatibilidade com o twitter bootstrap 3, preciso substituir alguns métodos de plugins:
Veja o exemplo: http://jsfiddle.net/mapb_1990/hTPY7/7/
fonte
resetForm()
o validador de um formulário nãounhighlight
invocará elementos inválidos, tornando necessário remover ahas-error
classe manualmente ao redefinir um formulário. O que faço é chamar a seguinte função, em vez de chamarresetForm()
diretamente o validador :function resetForm(form_id) { $(form_id).find(".form-group").removeClass("has-error"); $(form_id).data('validator').resetForm(); }
else if (element.prop('type') === 'radio') { error.insertBefore(element.parent().parent()); }
Para total compatibilidade com o Bootstrap 3, adicionei suporte ao grupo de entrada , rádio e caixa de seleção que estavam faltando nas outras soluções.
Atualização 20/10/2017 : sugestões inspecionadas das outras respostas e suporte adicional adicionado para marcação especial de rádio em linha , melhor posicionamento de erro para um grupo de rádios ou caixas de seleção e suporte adicional para uma classe .novalidation personalizada para impedir a validação de controles. Espero que isso ajude e obrigado pelas sugestões.
Após incluir o plug-in de validação, adicione a seguinte chamada:
Isso funciona para todas as classes de formulário do Bootstrap 3. Se você usar um formulário horizontal, precisará usar a seguinte marcação. Isso garante que o texto do bloco de ajuda respeite os estados de validação ("has-error", ...) do grupo de formulários .
fonte
errorClass: "help-block error-help-block"
. Eu já estava usando o .help-block para obter informações regulares de ajuda, e isso foi substituído por mensagens de validação de formulário. A adição de uma segunda classe a tornou única e, agora, ela acrescenta e não sobrescreve minha mensagem de ajuda "real".Uso formulários projetados apenas com o Twitter Bootstrap 3. Defino funções padrão para o validor e executo apenas o método de validação com regras. Eu uso ícones do FontAweSome, mas você pode usar Glyphicons como no exemplo do documento.
Feito. Após a execução, valide a função:
Exemplo JSFiddle
fonte
Ao adicionar a resposta de Miguel Borges acima, você pode dar ao usuário esse feedback de sucesso, adicionando a seguinte linha no bloco de código de destaque / falta de destaque.
fonte
esta é a solução que você precisa, você pode usar o
errorPlacement
método para substituir onde colocar a mensagem de errofunciona para mim como mágica. Felicidades
fonte
error.insertAfter('.form-group');
coloque erros em todos os .form-group. mas me mostrou a ideia. obrigadopara bootstrap 4 este trabalho comigo bom
espero que ajude!
fonte
validClass: 'valid-feedback'
Aqui está o que eu uso ao adicionar validação ao formulário:
Isso funcionou para mim no estilo do Bootstrap 3 ao usar a biblioteca de validação jquery.
fonte
Eu usei isso para o rádio:
desta forma, o erro é exibido na última opção de rádio.
fonte
Eu sei que esta pergunta é para o Bootstrap 3, mas como algumas perguntas relacionadas ao Bootstrap 4 são redirecionadas para esta como duplicatas, aqui está o snippet compatível com o Bootstrap 4:
As poucas diferenças são:
has-danger
vez dehas-error
fonte
.has-*
classes. getbootstrap.com/docs/4.3/migration/#forms-1Para o bootstrap 4 beta houve algumas grandes mudanças entre as versões alfa e beta do bootstrap (e também o bootstrap 3), esp. em relação à validação de formulário.
Primeiro, para colocar os ícones corretamente, você precisará adicionar um estilo que equivale ao que estava no bootstrap 3 e não no bootstrap 4 beta ... aqui está o que estou usando
As classes também foram alteradas, pois a versão beta usa o 'estado' do controle em vez das classes que o seu código postado não reflete, portanto, o código acima pode não funcionar. De qualquer forma, você precisará adicionar a classe 'foi validada' ao formulário nos retornos bem-sucedidos ou realçados / não realçados
Eu também recomendaria usar o novo elemento e classes para o texto de ajuda do controle de formulário
fonte
Isso compõe os campos
fonte
adicione a correção radio-inline a este https://stackoverflow.com/a/18754780/966181
fonte
A resposta de DARK_DIESEL funcionou muito bem para mim; aqui está o código para quem quer o equivalente usando glyphicons:
fonte
Tente usar este código de exemplo. Usando o plug-in de validação do Jquery e métodos adicionais. Este é o código de trabalho para o meu projeto. Espero que isso ajude você
fonte
Outra opção é colocar um contêiner de erro fora do seu grupo de formulários antes do tempo. O validador irá usá-lo, se necessário.
fonte