跟踪订单复选框已经过

时间:2016-09-27 23:19:37

标签: javascript jquery

我有一个动态创建的表,其中填充了行和列的复选框 他们独特的id也是动态创建的 我想存储用户在复选框中检查复选框的顺序'值。
如果未选中复选框,则应将其值重置为""或者到" 0"。

选中和取消选中复选框的次数并不重要 我只需要最终的顺序,所以增量变量应该可以正常工作。

例如:

  • 有复选框1 - 复选框10,其所有值最初都设置为""。
  • 如果用户首次点击复选框3,其值将设置为" 1"。
  • 如果用户随后点击了checkbox5,其值将设置为" 2"。
  • 如果用户随后点击复选框8,其值将设置为" 3"。
  • 如果未选中checkbox3和checkbox5,则其值将重置为""。
  • 如果再次检查checkbox3,其值将设置为" 4"。
  • 没有值为1或2的复选框没关系。

3 个答案:

答案 0 :(得分:3)

https://jsfiddle.net/a6fm7h9h/

$(document).ready(function() {
  var checkboxChecks = 1;

  $('input[type=checkbox]').on('change', function() {
    var $this = $(this);
    if ($this.is(':checked')) {
      $this.val(checkboxChecks++);
    } else {
      $this.val('');
    }
  });
});
input {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" value="" name="cb1" />
<input type="checkbox" value="" name="cb2" />
<input type="checkbox" value="" name="cb3" />
<input type="checkbox" value="" name="cb4" />
<input type="checkbox" value="" name="cb5" />
<input type="checkbox" value="" name="cb6" />
<input type="checkbox" value="" name="cb7" />
<input type="checkbox" value="" name="cb8" />
<input type="checkbox" value="" name="cb9" />
<input type="checkbox" value="" name="cb10" />

答案 1 :(得分:0)

你可以这样做:

如果您的网站上没有jQuery,请先添加此代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

然后,添加它(这应该没有任何修改的技巧):

<script>
var myCount = [];
$(document).ready(function() {
    $("input[type='checkbox']").change(function() {
        if($(this).is(":checked")) {
            myCount.push($(this).attr('id'));
            $(this).val(myCount.indexOf($(this).attr('id'))+1);
        }else{
            delete myCount[myCount.indexOf($(this).attr('id'))];
            $(this).val("");
        }
    });
});
</script>

希望这有效,请告诉我! 干杯

答案 2 :(得分:0)

只是从其他人发布的内容中抽取,这似乎工作正常。

$(document).ready(function() {
   var checkboxChecks = 10001;
   $('.myTablesClass').on('change', 'tr td .myInputsClass', function(){
      var $this = $(this);
      if ($this.is(':checked')) {
         $this.val(checkboxChecks++);
      } else {
         $this.val('');
      }
    });
});`