我使用jQuery UI Dialog和jQuery来选择“收音机”按钮。
我有2个对话框,一个用于“计算器”,另一个用于“expert_mode”。
但是,当我在计算器下选择'input[value="simple"]'
时,它也会影响具有相同名称的expert_mode下的input
,如何修复?
以下是我的代码:
这是我的HTML(简化):
<div name="widget">
<div name="calculator">
<input name="mode" value="a" type="radio" **checked="checked"**/>
<input name="mode" value="b" type="radio"/>
<input name="mode" value="c" type="radio"/>
</div>
<div name="expert">
<input name="mode" value="simple" type="radio"/>
<input name="mode" value="advanced" type="radio"/>
<input name="mode" value="custom" type="radio"/>
</div>
</div>
JavaScript:
var widget=$('div[name="widget"]');
var calculator=widget.find('div[name="calculator"]');
var expert=widget.find('div[name="expert"]');
calculator.dialog();
expert.dialog();
然后,当我这样做时:
expert.find('input[value="simple"]').attr('checked',true);
变成:
<div name="widget">
<div name="calculator">
<input name="mode" value="a" type="radio"/> ***Here, "checked" disappear!!***
<input name="mode" value="b" type="radio"/>
<input name="mode" value="c" type="radio"/>
</div>
<div name="expert">
<input name="mode" value="simple" type="radio" checked="checked"/>
<input name="mode" value="advanced" type="radio"/>
<input name="mode" value="custom" type="radio"/>
</div>
</div>
答案 0 :(得分:4)
问题是name
元素的input
,而不是你的jQuery。由于所有单选按钮具有相同的名称,因此它们被视为一个组,每组只能检查一个单选按钮。您必须更改一组单选按钮的name
,例如(简化):
<div name="calculator">
<input name="mode" value="a" type="radio"/>
</div>
<div name="expert">
<input name="expertMode" value="simple" type="radio" checked="checked"/>
</div>