在我的应用程序的一部分中,我检查重复的无线电输入选择并恢复它已经选择到早期选择.
dio" name="A" checked="checked" onclick="return check();" />
dio" name="A" onclick="return check();" />
dio" name="B" onclick="return check();" />
dio" name="B" checked="checked" onclick="return check();" />
这是javascript代码
function check() {
//logic to check for duplicate selection
alert('Its already selected');
return false;
}
这是demo
上面的代码工作正常.问题是最初未检查输入.在这种情况下,无线电输入选择不会恢复为未选中状态.
注意:处于选中状态时,返回false显示和警告,并将复选框设置为初始检查状态.但是当最初处于非检查状态时,这不起作用.
最佳答案
在DOM ready中,检查是否选中了任何单选按钮.如果选中任何单选按钮,请将计数器增加1.在单击单选按钮时,检查计数器值是否为1.如果是,则返回false,否则将计数器增加1.
试试这段代码,
HTML
dio" name="A" checked="checked" />
dio" name="A" />
dio" name="B" />
dio" name="B" />
JS
var counterA = 0;
var counterB = 0;
$(document).ready(function () {
if ($("input:radio[name=A]").is(":checked") == true) counterA++;
if ($("input:radio[name='B']").is(":checked") == true) counterB++;
});
$('input:radio[name=A]').click(function () {
if (counterA == 1) {
alert('already checked');
return false;
} else {
counterA++;
}
});
$('input:radio[name=B]').click(function () {
if (counterB == 1) {
alert('already checked');
return false;
} else {
counterB++;
}
});
看到这个DEMO