2009-03-13 16 views
7

Volveré sobre un proyecto reciente para resolver problemas de accesibilidad y me aseguré de que todos los elementos del formulario tuvieran etiquetas. Poner el texto de la etiqueta en una etiqueta causó un problema con algún código kludgy que había escrito antes.ocultar() botón de radio * y * su etiqueta de texto en jquery

Básicamente, si usted tiene un botón de radio y su etiqueta:

<label for="zone_r1"><input type="radio" name="zone" id="zone_r1" value="NY" />New York</label> 

y utiliza jQuery para ocultarlo, así:

$('#zone_r1').hide(); 

El botón real está oculto, pero no el texto de la etiqueta . Originalmente hice un lapso para el texto de la etiqueta y escondí que de este modo:

<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 puede que no valide con el lapso en la etiqueta, pero tal vez estoy siendo demasiado celoso.

Respuesta

12
$('#zone_r1').parent().hide(); 

funciona para mí

1

¿qué pasa con $('label:has(#zone_r1)').hide();

2

Para el primer botón de opción, puede ocultar el botón actual y entonces su parent:

$('#zone_r1').hide().parent().hide(); 

Para el segundo caso puede ocultar el botón y el "next" hermano:

$('#NY').hide().next().hide(); 
21

creo que esto debería funcionar para usted

$("label[for=zone_r1],#zone_r1").hide(); 

Esto selecciona la etiqueta con el atributo "for" se establece en el botón de radio que busca, así como el botón de radio en sí, y los dos se esconde

0

Usted puede hacer esto:

1.) Definir la entrada de botón de radio sin una etiqueta circundante.

2.) Envuelva el "texto de opción" (texto a la derecha del botón de opción) en <span>.

3.) Utilice esta instrucción jQuery: $("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

Esto seleccionará el botón y el texto a la derecha del botón de opción y ocultarlo.

0

Sólo hay que poner selector 'etiqueta' en padre:

$(':radio[id=zone_r1]').parent('label').hide(); 

Ver my jsFiddle example

+1

No sé por qué sentiste que necesitas responder a esta pregunta muy antigua y ya respondida, y me sorprende que hayas escrito un selector que contenga '[id = ...]'. Esa es una identificación. Ya sabes: '# zone_r1'. – SoonDead

0

ocultar recipiente botón de radio o TD basado en el valor

jQuery ("input [type = RADIO] [valor = 'EU2'] "). Parent().esconder();

Cuestiones relacionadas