jQuery单选按钮“选中”属性未触发
Posted
技术标签:
【中文标题】jQuery单选按钮“选中”属性未触发【英文标题】:jQuery radio button "checked" attribute not firing 【发布时间】:2013-01-28 06:02:47 【问题描述】:我正在尝试根据用户检查的单选按钮向 div 添加文本,但无论检查哪个属性,它最终都会触发“else”块,并且每次都显示“女性”。
请帮忙!
<input type="radio" name="gender" class="gender" id="male" value="male">Male<br />
<input type="radio" name="gender" class="gender" id="female" value="female">Female<br />
$(".gender").change(function ()
if ($("#male").attr("checked"))
$("#content").text("male");
else
$("#content").text("female");
);
【问题讨论】:
我想你不能直接设置值 【参考方案1】:您的代码在jQuery 1.8
或更短时间之前都可以使用。 http://jsfiddle.net/Dnd2L/
在最新版本中,.attr
用于在 html 中定义的属性,.prop
映射到动态元素的属性并返回当前值。
http://jsfiddle.net/Dnd2L/1/
关于attr
和prop
的更多信息-https://***.com/a/5876747/297641
【讨论】:
【参考方案2】:或者如果你的收音机没有类使用
$("input[name='gender'][checked='checked']").val();
获取选中单选的值。要更改检查的内容,请将要检查的 cbx 的值放入 val() 中,即...val("male");
【讨论】:
【参考方案3】:您并不特别需要 if,因为您的单选按钮是分组的,不可能有多项选择。
你可能想改用这个:
$(".gender").change(function ()
$("#content").text($(this).val());
);
JSFiddle:http://jsfiddle.net/3Lsg6/
【讨论】:
【参考方案4】:使用.prop('checked')
而不是.attr('checked')
。后者基于 HTML 属性,该属性始终为 false,因为它不在 DOM 中。 .prop
可用于检查 DOM 中可能不可见的属性更改。
http://jsfiddle.net/Xxuh8/
【讨论】:
以上是关于jQuery单选按钮“选中”属性未触发的主要内容,如果未能解决你的问题,请参考以下文章