botón de radio hide () * y * su etiqueta de texto en jquery
-
22-07-2019 - |
Pregunta
Regresaré a un proyecto reciente que resuelve los problemas de accesibilidad y me aseguro de que todos los elementos del formulario tengan etiquetas. Poner el texto de la etiqueta en una etiqueta causó un problema con un código poco claro que había escrito antes.
Básicamente, si tiene un botón de opción y su etiqueta:
<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label>
Y usas jquery para ocultarlo así:
$('#zone_r1').hide();
El botón real está oculto pero no el texto de la etiqueta. Originalmente hice un espacio para el texto de la etiqueta y lo oculté así:
<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>
y
$('#NY').hide();
$('#nyTXT').hide();
¿Alguna idea? Prefiero no usar el kludge y es posible que no se valide con el espacio en la etiqueta, pero tal vez estoy siendo demasiado celoso.
Solución
$('#zone_r1').parent().hide();
funciona para mí
Otros consejos
Creo que esto debería funcionar para usted
$("label[for=zone_r1],#zone_r1").hide();
Esto selecciona la etiqueta con " para " atributo establecido en el botón de radio que está buscando, así como el botón de radio en sí, y los oculta a ambos
¿qué pasa con $('label:has(#zone_r1)').hide();
Puedes hacer esto:
1.) Defina la entrada del botón de radio sin una etiqueta circundante.
2.) Ajuste el " texto de opción " (texto a la derecha del botón de opción) en un <span>
.
3.) Use esta declaración jQuery: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();
Esto seleccionará el botón de opción y el texto a la derecha del botón de opción y lo ocultará.
Simplemente coloque el selector 'etiqueta' en padre:
$(':radio[id=zone_r1]').parent('label').hide();
ocultar el contenedor del botón de radio o TD según el valor
jQuery (" input [type = radio] [value = 'EU2'] "). parent (). hide ();