Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择多个:如何选择/取消选择(Javascript)_Javascript - Fatal编程技术网

选择多个:如何选择/取消选择(Javascript)

选择多个:如何选择/取消选择(Javascript),javascript,Javascript,1) 我没有Javascript知识 2) 我使用的是select2(多选)引导表单。 3) 如果单击相应组的一个选项,我想取消选择组的其他选项 3.1)例如:如果选择了选项值“2”和“6”,然后单击选项“1”和“5”,则应自动取消选择选项“2”和“6” 谢谢 过滤器 国际广播公司 国际广播公司 IBC_NAO IBC_Nao_Mostrar 克罗特 克罗特辛 克罗特诺 克罗特纳奥莫斯特拉尔酒店 它对我很管用。如果您选中不同类别中的多个选项,它会自动取消选择其他类别中的其他选项。注意:当用户

1) 我没有Javascript知识

2) 我使用的是select2(多选)引导表单。 3) 如果单击相应组的一个选项,我想取消选择组的其他选项

3.1)例如:如果选择了选项值“2”和“6”,然后单击选项“1”和“5”,则应自动取消选择选项“2”和“6”

谢谢


过滤器
国际广播公司
国际广播公司
IBC_NAO
IBC_Nao_Mostrar
克罗特
克罗特辛
克罗特诺
克罗特纳奥莫斯特拉尔酒店

它对我很管用。如果您选中不同类别中的多个选项,它会自动取消选择其他类别中的其他选项。
注意:当用户使用
SHIFT
键时,该选项不起作用

<div align = "center" class="form-group">
<label>Filtros</label>
<select name ="Filtros" id = "Filtros" class="form-control select2" multiple="multiple" data-placeholder="Selecione os Filtros"
        style="width: 100%;">

<optgroup label="IBC" parent="1">
  <option value="1" childof="1">IBC_ALL</option>
  <option value="2" childof="1">IBC_SIM</option>
  <option value="3" childof="1">IBC_NAO</option>
  <option value="4" childof="1">IBC_Nao_Mostrar</option>

<optgroup label="CROT" parent="2">
  <option value="5" childof="2">CROT_ALL</option>
  <option value="6" childof="2">CROT_SIM</option>
  <option value="7" childof="2">CROT_NAO</option>
  <option value="8" childof="2">CROT_Nao_Mostrar</option>

</select>
</div>

<script>
var selected = {
    1:[],
    2:[]
}
var last_selected = 1;
document.getElementById('Filtros').addEventListener('click',function(e){
var parent = e.target.getAttribute('childof');

if( e.target.selected )
{
    selected[parent].push(e.target);

  for( var i=0; i < selected[parent].length; i++ )
  {
    var elem = selected[parent][i];

    if(!elem.selected)
      selected[parent].splice(i,1);
  }

  if( parent != last_selected )
  {
    for( var i=0; i < selected[last_selected].length; i++ )
    {
      var elem = selected[last_selected][i];
      elem.selected = false;
    }
  }

  last_selected = parent;
}
});
</script>

过滤器
国际广播公司
国际广播公司
IBC_NAO
IBC_Nao_Mostrar
克罗特
克罗特辛
克罗特诺
克罗特纳奥莫斯特拉尔酒店
所选变量={
1:[],
2:[]
}
var last_selected=1;
document.getElementById('Filtros')。addEventListener('click',函数(e){
var parent=e.target.getAttribute('childof');
如果(如选择目标)
{
选择[parent]。推送(e.target);
对于(变量i=0;i<所选[parent]。长度;i++)
{
var elem=所选的[母公司][i];
如果(!元素已选定)
选择[parent]。拼接(i,1);
}
如果(父项!=上次选中)
{
对于(变量i=0;i
它对我很管用。如果您选中不同类别中的多个选项,它会自动取消选择其他类别中的其他选项。
注意:当用户使用
SHIFT
键时,该选项不起作用

<div align = "center" class="form-group">
<label>Filtros</label>
<select name ="Filtros" id = "Filtros" class="form-control select2" multiple="multiple" data-placeholder="Selecione os Filtros"
        style="width: 100%;">

<optgroup label="IBC" parent="1">
  <option value="1" childof="1">IBC_ALL</option>
  <option value="2" childof="1">IBC_SIM</option>
  <option value="3" childof="1">IBC_NAO</option>
  <option value="4" childof="1">IBC_Nao_Mostrar</option>

<optgroup label="CROT" parent="2">
  <option value="5" childof="2">CROT_ALL</option>
  <option value="6" childof="2">CROT_SIM</option>
  <option value="7" childof="2">CROT_NAO</option>
  <option value="8" childof="2">CROT_Nao_Mostrar</option>

</select>
</div>

<script>
var selected = {
    1:[],
    2:[]
}
var last_selected = 1;
document.getElementById('Filtros').addEventListener('click',function(e){
var parent = e.target.getAttribute('childof');

if( e.target.selected )
{
    selected[parent].push(e.target);

  for( var i=0; i < selected[parent].length; i++ )
  {
    var elem = selected[parent][i];

    if(!elem.selected)
      selected[parent].splice(i,1);
  }

  if( parent != last_selected )
  {
    for( var i=0; i < selected[last_selected].length; i++ )
    {
      var elem = selected[last_selected][i];
      elem.selected = false;
    }
  }

  last_selected = parent;
}
});
</script>

过滤器
国际广播公司
国际广播公司
IBC_NAO
IBC_Nao_Mostrar
克罗特
克罗特辛
克罗特诺
克罗特纳奥莫斯特拉尔酒店
所选变量={
1:[],
2:[]
}
var last_selected=1;
document.getElementById('Filtros')。addEventListener('click',函数(e){
var parent=e.target.getAttribute('childof');
如果(如选择目标)
{
选择[parent]。推送(e.target);
对于(变量i=0;i<所选[parent]。长度;i++)
{
var elem=所选的[母公司][i];
如果(!元素已选定)
选择[parent]。拼接(i,1);
}
如果(父项!=上次选中)
{
对于(变量i=0;i
这不需要JavaScript。这取决于用户类型。要选择倍数,必须按住
CTRL
SHIFT
。因此,如果我以前选择了2和6,现在想忘记它们,选择1和5,我只需按1(不按其他键)然后按住
CTRL
并按5。您无需使用HTML标记问题,因为大多数格式选项可以使用工具栏或只需按ENTER键即可完成。谢谢您的回复。1) 我使用的是第一个多选择表单引导:。2) 它不像普通的多选表单那样,我们按住CTRL键来选择选项。没关系。选择选项由用户完成。这不需要JavaScript。这取决于用户类型。要选择倍数,必须按住
CTRL
SHIFT
。因此,如果我以前选择了2和6,现在想忘记它们,选择1和5,我只需按1(不按其他键)然后按住
CTRL
并按5。您无需使用HTML标记问题,因为大多数格式选项可以使用工具栏或只需按ENTER键即可完成。谢谢您的回复。1) 我使用的是第一个多选择表单引导:。2) 它不像普通的多选表单那样,我们按住CTRL键来选择选项。没关系。选择选项由用户完成。