得到"标签“;标签在Internet Explorer 6中工作(用于单选按钮)
Getting "Label" tags work in Internet Explorer 6 (for radio buttons)
问题:标签标签无法正常工作,单击标签并没有取消选中单选按钮。这在Mozilla Firefox中有效,但我无法在Internet Explorer 6中使用它。有没有javascript/jquery的变通方法。
<p>Would you prefer to walk without effort?</p>
<input type="radio" value="a" name="radgrp2"/> Yes <br />
<input type="radio" value="b" name="radgrp2"/> No <br />
<input type="radio" value="c" name="radgrp2"id="rad[1]" style="display:none;"/>
<label for="rad[1]"><input type ="button"value="Clear"/></label>
谢谢。。。
这里有一个非常简单的jQuery修复程序,它隐藏了标签标签的子级输入:
<p>Would you prefer to walk without effort?</p>
<input type="radio" value="a" name="radgrp2"/> Yes <br />
<input type="radio" value="b" name="radgrp2"/> No <br />
<input type="radio" value="c" name="radgrp2" id="rad[1]" style="display:none;"/>
<label for="rad[1]"><input type="button"value="Clear"/></label>
<script>
$("label>input").hide();
</script>
请在此处尝试:http://jsfiddle.net/VA3EH/1/
通过对元素调用show(),这也很容易逆转。
这里有一个很好的动态方法:
<p>Would you prefer to walk without effort?</p>
<input type="radio" value="a" name="radgrp2"/> Yes <br />
<input type="radio" value="b" name="radgrp2"/> No <br />
<input type="radio" value="c" name="radgrp2" id="rad[1]" style="display:none;"/>
<label for="rad[1]"><input type="button"value="Clear"/></label>
<script>
$("label>input").hide();
$("input[type='radio']").click(function () {
$(this).nextAll("label").find("input").show();
})
</script>
该按钮处于隐藏状态,直到单击单选按钮。单击单选按钮后,将显示清除按钮。试试看:http://jsfiddle.net/25z3h/
然后,如果你真的想变得有趣,可以在按钮上附加另一个事件处理程序,清除复选框值,然后再次隐藏自己:
<p>Would you prefer to walk without effort?</p>
<input type="radio" value="a" name="radgrp2"/> Yes <br />
<input type="radio" value="b" name="radgrp2"/> No <br />
<input type="radio" value="c" name="radgrp2" id="rad[1]" style="display:none;"/>
<label for="rad[1]"><input type="button"value="Clear"/></label>
<script>
$("label>input").hide();
$("input[type='radio']").click(function () {
$(this).nextAll("label").find("input").show();
$(this).nextAll("label").find("input").click(function () {
$(this).parent("label").prevAll("input[type='radio']").removeAttr("checked");
$(this).hide();
})
})
</script>
请在此处尝试:http://jsfiddle.net/VA3EH/2/
实现这一点的简单方法是只使用一个JavaScript驱动的按钮来检查隐藏的单选按钮。用以下内容替换label
元件:
<input type="button" value="Clear" onclick=
"document.getElementById('rad[1]').checked = true" />
缺点是,当禁用JavaScript时,这将不起作用。对于不引人注目的JavaScript,您应该使用JavaScript生成这个input
元素。
请注意,您当前的代码违反了HTML规则,包括HTML4规则和HTML5CR规则。您将label
与两个元素关联(一个通过for
,一个通过嵌套),这是禁止的。因此,根本不应该期望代码工作。
最好的方法是将"无选择"选项设置为带有普通标签的普通单选按钮。这适用于所有浏览器,不需要JavaScript:
<input type="radio" value="c" name="radgrp2" id="rad[1]" />
<label for="rad[1]">No preference</label>
相关文章:
- xPages标签onclick事件不'不要在空白处工作
- 使用几个<脚本>标签不会't工作-只调用一个脚本
- jquery在通过谷歌标签管理器交付时点击不工作
- 由于存在标签('#')特殊字符,URL无法工作
- JavaScript on Click 事件在 img 标签上无法正常工作
- 如何使html链接标签可以在没有标签的情况下工作
- (X-Editable)与(Select2标签)不工作,可以't填充当前标签并跟踪添加/删除的标签
- jqplot.replot无法正常工作.图例仅由两个标签代替:“;1〃;以及“;2〃;
- 锚定标签功能强大,但滚动流畅赢得't工作;页面的行为就像javascript是'没有
- 可以'不要让HTML5音频标签在移动浏览器上工作
- 带有两个视频标签的HTML无法工作
- Bootstrap scrollspy没有'不能在标签内工作
- 得到"标签“;标签在Internet Explorer 6中工作(用于单选按钮)
- <输入>标签工作在这个例子中
- href 标签无法正常工作
- 让谷歌浏览器扩展程序只在一个标签上工作
- 调用javascript函数的日期picker输入标签工作的第二个动作
- 如何使这些标签工作
- 在函数中不能使用标签工作,将出现标签未找到错误
- 从一个标签链接到另一个标签.工作在Chrome,而不是FF/IE