检查类的所有输入,并在单击任何类时取消选中其他类

时间:2017-05-16 20:33:11

标签: jquery html input

我的问题如下,我有两类输入:c1s和c1n。

我希望如果检查了类c1n的任何输入,则会检查类c1s中的所有项目,并取消选中c1n中的项目。

我已经完成了以下操作,但仍然无法工作,例如点击的输入不会改变,其余的是,以及其他一些奇怪的情况......也许有人可以看到我的代码并提供更简单的解决方案。

以下代码用于将c1s的输入交换为checked,c1n交换为unchcecked:

首先点击最近的c1s项目类,为输入c1s和c1n创建一个数组,如果没有选中,则检查eaceh c1s set属性,并检查每个c1n set属性是否为false。



$('#TablaAcciones').on('click', '.c1s', function() {
    console.log(".");
    var inputsc1s = $(".c1s");
    var inputsc1n = $(".c1n");
    var val = $(this).closest('.c1s').first().attr("value");
    alert("s" + val);
    inputsc1s.each(function() {
        $(this).prop('checked', !$(this).is(':checked'));
    });
    inputsc1n.each(function() {
        $(this).prop('checked', false);
    });

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="TablaAcciones">
    <thead>
        <tr>Hello</tr>
    </thead>
    <tr>
        <td>
            <label>c1s</label>
            <input type="radio" value="1" name="row1" class="c1s" checked="checked" />
        </td>
        <td>
            <label>c1n</label>
            <input type="radio" value="1" name="row1" class="c1n" />
        </td>
    </tr>
    <tr>
        <td>
            <label>c1s</label>
            <input type="radio" value="1" class="c1s" name="row2" />
        </td>
        <td>
            <label>c1n</label>
            <input type="radio" value="1" class="c1n" checked="checked" name="row2" />
        </td>
    </tr>
</table>
&#13;
&#13;
&#13;

代码工作50/50但我合法无法提出最终解决方案。

FIDDLE:

https://jsfiddle.net/ggs8zvkj/

欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

这将检查所有c1s&amp;取消选中c1n。 当您使用类时,如果更改类的属性,则不需要使用每个类,它将反映所有元素具有该类。 例如$(".c1s").prop("checked", true)这对于所有元素都设置为c1s

 $('#TablaAcciones').on('click', '.c1s', function () {
        if ($(this).prop('checked')) {
            $(".c1s").prop("checked", true);
            $(".c1n").prop("checked", false);
        }

    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="TablaAcciones">
    <thead>
        <tr>Hello</tr>
    </thead>
    <tr>
        <td>
            <label>c1s</label>
            <input type="radio" value="1" name="row1" class="c1s" checked="checked" />
        </td>
        <td>
            <label>c1n</label>
            <input type="radio" value="1" name="row1" class="c1n" />
        </td>
    </tr>
    <tr>
        <td>
            <label>c1s</label>
            <input type="radio" value="1" class="c1s" name="row2" />
        </td>
        <td>
            <label>c1n</label>
            <input type="radio" value="1" class="c1n" checked="checked" name="row2" />
        </td>
    </tr>
</table>