Então, como posso permitir apenas que um usuário marque apenas uma caixa de seleção?
Eu sei que os botões de opção são "ideais", mas para o meu propósito ... não é.
Eu tenho um campo em que os usuários precisam selecionar uma ou uma das duas opções, mas não as duas. O problema é que eu preciso que meus usuários também possam desmarcar suas opções, e é aí que os botões de opção falham porque, depois de selecionar o grupo, você deve escolher uma opção.
Eu validarei as informações via php, mas ainda assim gostaria de restringir os usuários a uma resposta, se eles quiserem dar.
Respostas:
Este trecho:
fonte
.radio
seletor ajudaria. Obrigado por apontar isso :)Você deseja vincular um
change()
manipulador para que o evento seja acionado quando o estado de uma caixa de seleção for alterado. Em seguida, desmarque todas as caixas de seleção, exceto a que acionou o manipulador:Aqui está um violino
Quanto ao agrupamento, se sua caixa de seleção "grupos" fosse todos irmãos:
Você poderia fazer isso:
Aqui está outro violino
Se suas caixas de seleção estiverem agrupadas por outro atributo, como
name
:Você poderia fazer isso:
Aqui está outro violino
fonte
Os botões de opção são ideais. Você só precisa de uma terceira opção "nem" que seja selecionada por padrão.
fonte
Já existem algumas respostas para isso baseadas em JS puro, mas nenhuma delas é tão concisa quanto eu gostaria que fossem.
Aqui está minha solução com base no uso de tags de nome (como nos botões de opção) e em algumas linhas de javascript.
fonte
Isso deve funcionar para qualquer número de caixas de seleção no formulário. Se você tiver outras pessoas que não fazem parte do grupo, configure os seletores nas entradas aplicáveis.
fonte
Aqui está uma solução HTML e JavaScript simples que eu prefiro:
// função js para permitir apenas a verificação de uma caixa de seleção de dia da semana por vez:
fonte
Que este código o ajude.
Link de trabalho Clique aqui
fonte
Com base na resposta de billyonecan , você pode usar o código a seguir se precisar desse trecho para mais de uma caixa de seleção (supondo que eles tenham nomes diferentes).
fonte
Embora JS seja provavelmente o caminho a seguir, ele poderia ser feito apenas com HTML e CSS.
Aqui você tem um botão de opção falso, que é realmente um rótulo para um botão de opção realmente oculto. Ao fazer isso, você obtém exatamente o efeito necessário.
Veja aqui: https://jsfiddle.net/tn70yxL8/2/
Agora, isso pressupõe que você precise de etiquetas não selecionáveis.
Se você estava disposto a incluir os rótulos, tecnicamente, pode evitar repetir o rótulo "desmarcar" alterando seu texto em CSS, veja aqui: https://jsfiddle.net/7tdb6quy/2/
fonte
Exemplo com AngularJs
fonte
Com javascript antigo simples.
fonte
fonte
Se alguém precisar de uma solução sem bibliotecas javascript externas, você pode usar este exemplo. Um grupo de caixas de seleção que permitem valores 0..1. Você pode clicar no componente da caixa de seleção ou no texto do rótulo associado.
fonte
Minha versão: use atributos de dados e Vanilla JavaScript
fonte
Necromancing:
E sem o jQuery, para uma estrutura de caixa de seleção como esta:
você faria assim:
fonte
fonte