hide () botão de rádio * e * seu rótulo de texto em jQuery
-
22-07-2019 - |
Pergunta
Eu estou indo para trás sobre um projeto recente resolvendo problemas de acessibilidade e foi certificando-se de todos os elementos de formulário tinha etiquetas. Colocar o texto do rótulo em uma tag causou um problema com algum código kludgy eu tinha escrito antes.
Basicamente, se você tem um botão de rádio e com a etiqueta:
<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label>
E você usar jquery para escondê-lo assim:
$('#zone_r1').hide();
O botão real está escondido, mas não o texto do rótulo. Originalmente eu fiz um intervalo para o texto do rótulo e escondeu que gosta assim:
<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>
e
$('#NY').hide();
$('#nyTXT').hide();
Todas as idéias? Eu prefiro não usar o kludge e não pode validar com o período no rótulo, mas talvez eu estou sendo excessivamente zelosos.
Solução
$('#zone_r1').parent().hide();
funciona para mim
Outras dicas
Eu acho que isso deve funcionar para você
$("label[for=zone_r1],#zone_r1").hide();
Isso seleciona o rótulo com a "para" conjunto de atributos para o botão de rádio você está procurando, assim como o próprio botão de rádio, e se esconde ambos
que sobre $('label:has(#zone_r1)').hide();
Você pode fazer isso:
1.) Definir a entrada de botão de rádio sem rótulo circundante.
2.) Enrole a "text opção" (texto à direita do botão de rádio) em um <span>
.
3) Use esta declaração jQuery:. $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();
Isso irá selecionar o botão de rádio e de texto à direita do botão de rádio e escondê-lo.
Basta colocar selector 'label' no pai:
$(':radio[id=zone_r1]').parent('label').hide();
escondendo rádio recipiente botão ou TD com base no valor
jQuery ( "input [type = rádio] [valor = 'UE2']") progenitor () ocultar ();..