我有这个奇怪的问题,可能是我忽略了一些东西,但这让我发疯了。 在我的应用程序中,我不希望用户选择超过30个项目,所以如果用户点击进一步的单选按钮我不希望他这样做30个。
问题是,如果我通过jquery获取单选按钮的名称,然后设置该单选按钮的值,它不起作用,但如果我硬编码相同的名称,那么它确实有效
这是Jsfiddle的例子。 http://jsfiddle.net/s7GeZ/2/
HTML:
<span class="radiobut4" >
Ignore <input type="radio" value="ignore" name="art_52643" id="52643" >
Visible <input type="radio" value="visible" name="art_52643" id="52643" >
Invisible <input type="radio" value="invisible" name="art_52643" id="52643">
</span>
Java脚本:
$('input:radio').live("change",function (event){
var radioName = $(this).attr("name");
alert(radioName);
$("input:radio[name='+radioName+'][value ='ignore']").prop('checked', true);
// $("input:radio[name='art_52643'][value ='ignore']").prop('checked', true);
});
只需评论/取消注释最后两行即可查看问题。
任何形式的帮助都将受到赞赏。
答案 0 :(得分:10)
引号不匹配,更改:
$("input:radio[name='+radioName+'][value ='ignore']").prop('checked', true);
到
$("input:radio[name='"+radioName+"'][value ='ignore']").prop('checked', true);
将变量连接到选择器 另请注意,具有相同名称的无线电是一个组,一次只能检查一个,具有相同ID的无线电只是无效标记。
答案 1 :(得分:1)
您需要指定收音机的名称,您选择的名称为“+ radioName +”的收音机不是您想要的。试试这个:
$("input:radio[name='"+radioName+"'][value ='ignore']").prop('checked', true);