当前位置: 首页 > 知识库问答 >
问题:

如果选中以下复选框,则选择前面的复选框

靳祺然
2023-03-14

如果选中复选框D并取消选中其他复选框,我希望选中复选框K和F。同样,如果选中复选框I,则前面的复选框I将被选中,下面的复选框将被取消选中。我的html代码是:

<td><input type="checkbox" class= "knitting" name="knitting[]" value="1">K</td>
<td><input type="checkbox" class= "fmending" name="fmending[]" value="1">F</td>
<td><input type="checkbox" class= "dyeing" name="dyeing[]" value="1">D</td>
<td><input type="checkbox" class = "firon" name="firon[]" value="1">Y</td>
<td><input type="checkbox" class= "linking" name="linking[]" value="1">L</td>
<td><input type="checkbox" class="smending" name="smending[]" value="1">S</td>
<td><input type="checkbox" class="siron" name="siron[]" value="1">I</td>
<td><input type="checkbox" class="packing" name="packing[]" value="1">P</td>
<td><input type="checkbox" class="data" name="data[]" value="1">D</td>
<td><input type="checkbox" class="chalan" name="chalan[]" value="1">C</td>

我为此所做的是:

$(".dyeing").click(function () {
    $(".knitting").prop("checked", true);
    $(".fmending").prop("checked", true);
    $(".firon").prop("checked", false);
    $(".linking").prop("checked", false);
    $(".smending").prop("checked", false);
    $(".siron").prop("checked", false);
    $(".packing").prop("checked", false);
    $(".data").prop("checked", false);
    $(".chalan").prop("checked", false);
});

这看起来很乱,还有一个很酷的过程吗???

共有3个答案

皇甫雨华
2023-03-14

**编辑:此解决方案对于您不想只选中/取消选中连续复选框的情况很有用,但是可以根据单击的复选框选中/取消选中任何复选框。

是的,您可以在复选框中添加多个类,例如dyeingfalse、KnitingTrue等。另外,为每个复选框指定一个数据属性,例如data name=“染色”。

现在

$("input[type=checkbox]").on("click", function(){
  if( $(this).is(":checked") )
  {
    var name = $(this).attr("data-name");
    $("input."+name+"false").prop("checked", false);
    $("input."+name+"true").prop("checked", true);
  }//if
});//click handler
汪甫
2023-03-14

你可以,

$("input[type='checkbox']").click(function() {
  if (this.checked)
    $("td:lt(" + $(this).closest("td").index() + ") input[type='checkbox']").prop("checked", this.checked);
});

不停摆弄

梁渊
2023-03-14

可以使用:lt()和:gt()选择器执行此操作:

$(":checkbox").on('change',function () {
   var idx=$(this).index();
   $(":checkbox:lt("+idx+")").prop('checked',true);
   $(":checkbox:gt("+idx+")").prop('checked',false);             
}); 

检查下面的代码片段

var idx = 0;
var chk = $('table tr :checkbox');
$("table tr :checkbox").on('change', function() {
  var index = chk.index($(this));
  if (idx < index) {
    idx = index;
    $("table tr :checkbox:lt(" + idx + ")").prop('checked', true);
    $(":checkbox:gt(" + idx + ")").prop('checked', false);
  } else if (idx == index && !$(this).prop('checked')) {

    $(":checkbox").prop('checked', false);
  } else {
    idx = chk.index($(this));
    $(":checkbox:lt(" + idx + ")").prop('checked', true);
    $(this).prop('checked', true);
    $(":checkbox:gt(" + idx + ")").prop('checked', false);
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>
        <input type="checkbox" class="knitting" name="knitting[]" value="1">K</td>
      <td>
        <input type="checkbox" class="fmending" name="fmending[]" value="1">F</td>
      <td>
        <input type="checkbox" class="dyeing" name="dyeing[]" value="1">D</td>
      <td>
        <input type="checkbox" class="firon" name="firon[]" value="1">Y</td>
      <td>
        <input type="checkbox" class="linking" name="linking[]" value="1">L</td>
      <td>
        <input type="checkbox" class="smending" name="smending[]" value="1">S</td>
      <td>
        <input type="checkbox" class="siron" name="siron[]" value="1">I</td>
      <td>
        <input type="checkbox" class="packing" name="packing[]" value="1">P</td>
      <td>
        <input type="checkbox" class="data" name="data[]" value="1">D</td>
      <td>
        <input type="checkbox" class="chalan" name="chalan[]" value="1">C</td>
    </tr>
  </tbody>
</table>
 类似资料:
  • 如问题所述,当选中标题中的“全选”复选框时,我已经可以选中gridview行中的复选框,当取消选中标题中的“全选”复选框时,取消选中gridview行中的复选框。我想做的是,当没有选中行中的所有复选框时,则不选中标题中的“全选”复选框,反之亦然(当选中行中的所有复选框时,则选中标题中的“全选”复选框)。 我该怎么做? 我已经做了我想要实现的,但是标题中的复选框开始影响(选中或取消选中),即使我只选

  • 选中“第一键”复选框时,我想选中并禁用“第二键”复选框 html代码 为复选框键入脚本代码 } 通过使用此代码,key 2复选框被选中并禁用。但是key 2复选框的布尔值仍然是假的。当我单击key 1复选框时,关于如何将key 2复选框的布尔值更改为true的任何建议我正在使用Angular 8及其反应式形式模块。我是角度新手。

  • 我试图创建一个表单,该表单顶部有一个复选框,当用户选中该复选框时,它会选择其他特定的复选框,但不是所有复选框。我很难通过反复试验或搜索找到答案。我唯一能找到的就是“全选”选项。不是我想要的。 理想情况下,当用户选中“管理包”旁边的复选框时,我想要“Chrome外观组”和“远程启动” 下面是代码和我在这方面的基本尝试,但它不起作用。提前谢谢。 超文本标记语言: Javascript 我不知道这个Ja

  • 下面是我的代码。 问题是当我选中一个复选框时,包括选中循环视图中的其他复选框。但当我签入适配器时,项目被正确添加,但复选框被复制。 例如:如果我选中了第一项复选框,向下滚动第16项复选框也会被选中。取消选中该复选框也将取消选中第一项。

  • 我有一组单选按钮,如果选中“no”,它会显示一个包含6个复选框(不同的名称/ID)的DIV。如果选中“none”,我需要禁用其他复选框(如果不选中“none”,则再次启用)。我还需要标签将类添加到禁用的复选框中,就像我在下面的“添加到笔记本电脑的代码”复选框中所做的那样。 下面是我的演示: null null 我怎样才能把这个和我在这里面的其他脚本结合起来呢?

  • 我创建了一个windows窗体(到目前为止)只包含复选框。构造函数接受一个参数:。对于这个数组中的每个字符串,我都会创建一个复选框。 例如: null 那么,当另一个复选框调用uncheck时,是否有一种方法可以告诉我的复选框不要运行? 下面是我的代码(它都是手工编写的,所以没有使用visual studio设计器):