我要回在最近的一个项目整理出可访问性问题,并确保所有的表单元素有标签。把标签文本标签引起一个问题,我之前写了一些缺憾代码。

基本上,如果你有一个单选按钮,它的标签:

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

和你使用jQuery来隐藏它,像这样:

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

在实际的按钮被隐藏而不是标签文本。本来我做了一个跨度标签文本和隐藏了,像这样:

<input id="NY" type="radio" name="zone" value="NY" /><span id="nyTXT">New York</span>

$('#NY').hide();
$('#nyTXT').hide();

任何想法?我宁愿不使用组装机,它可能不会在标签跨度验证,但也许我过于热心。

有帮助吗?

解决方案

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

适用于我

其他提示

我觉得这应该为你工作。

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

此选择具有“为”属性设置为单选按钮你寻找,以及单选按钮本身的标签,并隐藏他们两个

$('label:has(#zone_r1)').hide();什么

有关第一个单选按钮,则可以隐藏的实际按钮,然后其

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

对于第二种情况,可以隐藏按钮和“下一步”兄弟:

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

您可以这样做:

1)定义的单选按钮输入没有环绕型标签。

2。)在一个<span>包裹“选项文本”(文本到无线电按钮的右侧)。

3)使用此jQuery的语句:$("input:radio:not(:checked), input:radio:not(:checked) + span").hide();

此将选择的单选按钮和文本到无线电按钮的右边和隐藏。

在父只要把 '标签' 选择器:

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

请参阅我的jsfiddle例如

基于值隐藏单选按钮容器或TD

的jQuery( “输入[类型=无线电] [值= 'EU2']”)的父()隐藏();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top