我有一些使用jQuery UI和jQuery 1.6 +
的单选按钮组当某个收音机被检查'是'时,另一个收音机也被强制检查。
<input type="radio" name="111" class="set111a" id="111a" value="1" />
<input type="radio" name="111" class="set111b" id="111b" value="0" checked="checked" />
<input type="radio" name="112" class="set112a" id="112a" value="1" />
<input type="radio" name="112" class="set112b" id="112b" value="0" checked="checked" />
这是我用来试图强制其他无线电检查的jQuery代码。
$("#112a").change(function() {
if ($("#112a").is(":checked")) {
$('#111a').prop("checked",true);
$("#111b").prop("checked",false);
}
});
它确实有效但仅在检查数据时(通过提交表单)。它显示如果112为1,则111为1.但问题是:“111”按钮的实际可视部分仍显示它设置为“NO”(或值为0)。
答案 0 :(得分:0)
您的代码对我有用。如果需要#111b
,我可能会建议您停用无效单选按钮#111a
,否则他们可能会覆盖您的手动强制。此外,当实际打开单选按钮时,您只能在单选按钮上触发更改事件,因此您可能需要更宽的选择器。
$("input").change(function()
{
if ($("#112a").is(":checked"))
{
$('#111a').prop("checked",true);
$('#111b').attr('disabled', 'disabled');
$("#111b").prop("checked",false);
}
else
{
$('#111b').attr('disabled', null);
}
});
答案 1 :(得分:0)
试试,这是你想要的吗
<强> HTML 强>
<input type="radio" name="111" class="set111a" id="111a" value="1" />
<input type="radio" name="111" class="set111b" id="111b" value="0" checked="checked" />
<input type="radio" name="112" class="set112a" id="112a" value="1" />
<input type="radio" name="112" class="set112b" id="112b" value="0" checked="checked" />
<input id="btn" type="button" value="Click after change"/>
<强> JS 强>
$("#112a").change(function() {
if ($("#112a").is(":checked")) {
$('#111a').click();
}
});
$("#btn").click(function() {
alert($("#111a").is(":checked"));
});
答案 2 :(得分:0)
您需要在按钮组上调用刷新,以便ui更新
$("#radio").buttonset(); // <-- whatever element you are wrapping the radio buttons in
$("#112a").change(function() {
if ($("#112a").is(":checked")) {
$('#111a').prop("checked",true);
$("#111b").prop("checked",false);
}
$("#radio").buttonset('refresh'); // <-- refresh the buttonset
});
以下是button api
的链接