Javascript 以Apex表格形式选择一系列复选框(使用jQuery)

Javascript 以Apex表格形式选择一系列复选框(使用jQuery),javascript,jquery,checkbox,oracle-apex,Javascript,Jquery,Checkbox,Oracle Apex,我正在尝试添加在apex表格中同时选择多个复选框的选项: 我最初想编写一些Javascript,允许使用电子表格软件的直觉标准方式选择一系列复选框,以: 选择第一项 按住shift键 选择最后一项 但是为了更容易实现,我决定只使用apex按钮来设置请求。 我的代码应该选中从第一个选中到最后一个选中的所有复选框。但事实并非如此,我也不明白为什么 var $firstChecked = $('input[type=checkbox]:checked').first(); var $lastCheck

我正在尝试添加在apex表格中同时选择多个复选框的选项:

我最初想编写一些Javascript,允许使用电子表格软件的直觉标准方式选择一系列复选框,以:

选择第一项 按住shift键 选择最后一项 但是为了更容易实现,我决定只使用apex按钮来设置请求。 我的代码应该选中从第一个选中到最后一个选中的所有复选框。但事实并非如此,我也不明白为什么

var $firstChecked = $('input[type=checkbox]:checked').first();
var $lastChecked = $('input[type=checkbox]:checked').last();
$firstChecked.nextUntil($lastChecked, 'input[type=checkbox]').each(function () {
    $(this).prop('checked', true);
});
我几乎可以肯定我在下一次做错事,直到因为

很好用

使用从apex复制的html代码

我的javascript代码有什么问题? 有没有可能把这个程序编码 jQuery记录shift键的直观方式? 试试这个:-

$("#myButton").click(function () {
 var f=$("input[type=checkbox]").index($('input[type=checkbox]:checked').first());    
 var ls = $("input[type=checkbox]").index($('input[type=checkbox]:checked').last());
   for(var i=f;i<=ls;i++)
     {
       $("input[type=checkbox]").eq(i).prop('checked', true);
     }   
  });

  $("#myOtherButton").click(function () {
   $('input[type=checkbox]:checked').prop('checked', false);
  });
试试这个:-

$("#myButton").click(function () {
 var f=$("input[type=checkbox]").index($('input[type=checkbox]:checked').first());    
 var ls = $("input[type=checkbox]").index($('input[type=checkbox]:checked').last());
   for(var i=f;i<=ls;i++)
     {
       $("input[type=checkbox]").eq(i).prop('checked', true);
     }   
  });

  $("#myOtherButton").click(function () {
   $('input[type=checkbox]:checked').prop('checked', false);
  });
试试这个:-

$("#myButton").click(function () {
 var f=$("input[type=checkbox]").index($('input[type=checkbox]:checked').first());    
 var ls = $("input[type=checkbox]").index($('input[type=checkbox]:checked').last());
   for(var i=f;i<=ls;i++)
     {
       $("input[type=checkbox]").eq(i).prop('checked', true);
     }   
  });

  $("#myOtherButton").click(function () {
   $('input[type=checkbox]:checked').prop('checked', false);
  });
试试这个:-

$("#myButton").click(function () {
 var f=$("input[type=checkbox]").index($('input[type=checkbox]:checked').first());    
 var ls = $("input[type=checkbox]").index($('input[type=checkbox]:checked').last());
   for(var i=f;i<=ls;i++)
     {
       $("input[type=checkbox]").eq(i).prop('checked', true);
     }   
  });

  $("#myOtherButton").click(function () {
   $('input[type=checkbox]:checked').prop('checked', false);
  });

您正在尝试获取下一个复选框,直到最后一个复选框被选中为止。但根据HTMLDOM结构,所有复选框都不是同级的,因此不能使用.nextUntil。但是它们存在于每个兄弟tr中,所以找到第一个tr和最后一个tr,并选中它们之间tr中的复选框

试试这个:

$("#myButton").click(function () {
    var $firstChecked = $('input[type=checkbox]:checked:first').closest('tr');
    var $lastChecked = $('input[type=checkbox]:checked:last').closest('tr');
    $firstChecked.nextUntil($lastChecked).find('input[type=checkbox]').prop('checked', true);
});

您正在尝试获取下一个复选框,直到最后一个复选框被选中为止。但根据HTMLDOM结构,所有复选框都不是同级的,因此不能使用.nextUntil。但是它们存在于每个兄弟tr中,所以找到第一个tr和最后一个tr,并选中它们之间tr中的复选框

试试这个:

$("#myButton").click(function () {
    var $firstChecked = $('input[type=checkbox]:checked:first').closest('tr');
    var $lastChecked = $('input[type=checkbox]:checked:last').closest('tr');
    $firstChecked.nextUntil($lastChecked).find('input[type=checkbox]').prop('checked', true);
});

您正在尝试获取下一个复选框,直到最后一个复选框被选中为止。但根据HTMLDOM结构,所有复选框都不是同级的,因此不能使用.nextUntil。但是它们存在于每个兄弟tr中,所以找到第一个tr和最后一个tr,并选中它们之间tr中的复选框

试试这个:

$("#myButton").click(function () {
    var $firstChecked = $('input[type=checkbox]:checked:first').closest('tr');
    var $lastChecked = $('input[type=checkbox]:checked:last').closest('tr');
    $firstChecked.nextUntil($lastChecked).find('input[type=checkbox]').prop('checked', true);
});

您正在尝试获取下一个复选框,直到最后一个复选框被选中为止。但根据HTMLDOM结构,所有复选框都不是同级的,因此不能使用.nextUntil。但是它们存在于每个兄弟tr中,所以找到第一个tr和最后一个tr,并选中它们之间tr中的复选框

试试这个:

$("#myButton").click(function () {
    var $firstChecked = $('input[type=checkbox]:checked:first').closest('tr');
    var $lastChecked = $('input[type=checkbox]:checked:last').closest('tr');
    $firstChecked.nextUntil($lastChecked).find('input[type=checkbox]').prop('checked', true);
});
使用tr parent of checkbox尝试以下操作

使用tr parent of checkbox尝试以下操作

使用tr parent of checkbox尝试以下操作

使用tr parent of checkbox尝试以下操作


nextUntil不支持回调。以下是shift:nextUntil不支持回调的解决方案。以下是shift:nextUntil不支持回调的解决方案。以下是shift:nextUntil不支持回调的解决方案。以下是shift:谢谢,不知道nextUntil仅适用于兄弟姐妹。关于shift+select问题:理论上jQuery可以吗?选中此项,可能会帮助您,谢谢。不知道nextUntil仅适用于兄弟姐妹。关于shift+select问题:理论上jQuery可以吗?选中此项,可能会帮助您,谢谢,不知道nextUntil仅适用于兄弟姐妹。关于shift+select问题:理论上jQuery可以吗?检查此项,可能会帮助您,谢谢,不知道nextUntil仅适用于兄弟姐妹。关于shift+select问题:理论上jQuery可以吗?检查此项,可能会帮助您