javascript - 取消选择 radio 输入选择

标签 javascript jquery html

在我的应用程序的一部分中,我检查是否有重复的 radio 输入选择,如果它已经被选中,则恢复为早期选择。

这是我的 html 代码..

<input type="radio" name="A" checked="checked" onclick="return check();" />
<input type="radio" name="A" onclick="return check();" />

<br />

<input type="radio" name="B"  onclick="return check();" />
<input type="radio" name="B" checked="checked" onclick="return check();" />

这是javascript代码

function check() {
    //logic to check for duplicate selection
    alert('Its already selected');
    return false;
}

这里是 demo 上面的代码工作正常。问题是最初未检查输入时。在这种情况下, radio 输入选择不会恢复为未选中状态。

注意:当处于选中状态时,返回 false 显示并警告并将复选框设置为初始选中状态。但是当最初处于非选中状态时,这不起作用。

最佳答案

在 DOM 就绪状态下,检查是否选中了任何单选按钮。如果选中任何单选按钮,则将计数器加一。在单选按钮的onclick中,检查计数器值是否为1。如果是,则返回false,否则将计数器增加1。

试试这段代码,

html

<input type="radio" name="A" checked="checked" />
<input type="radio" name="A" />
<br />
<input type="radio" name="B" />
<input type="radio" 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

关于javascript - 取消选择 radio 输入选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22474952/

相关文章:

javascript - 在 JS 中创建没有 Canvas 实例的 CanvasImageData 对象

php - 使用 PHP 在数据库中插入信息

javascript - jQuery slimScroll 总是从底部开始

javascript - puppeteer 师得到错误 : Evaluation failed: TypeError: Cannot read properties of null (reading 'innerText' ) when returning multiple values

jquery - 如何使用 jQuery 跨请求保存菜单切换按钮的状态?

javascript - jquery或javascript中的字符串分割 '\'

Bootstrap 下拉菜单的 JavaScript 有时有效,有时无效

javascript - 对象不支持该属性或方法(自定义对象的自定义原型(prototype)方法)

javascript - JQuery - 将方法分配给变量

html - 垂直对齐内联 block ,高度为 100%