Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 jQuery根据第一个选择菜单中的选择值填充第二个选择菜单_Javascript_Jquery_Select - Fatal编程技术网

Javascript jQuery根据第一个选择菜单中的选择值填充第二个选择菜单

Javascript jQuery根据第一个选择菜单中的选择值填充第二个选择菜单,javascript,jquery,select,Javascript,Jquery,Select,我需要有两个选择菜单。第一选择菜单中的选定选项将填充第二选择菜单,但仅使用大于第一选择菜单中选定值的值 <select id="selectMenu1"> <option value="Select">Select</option> <option value="10">10</option> <option value="9">9</option> <option value="8">

我需要有两个选择菜单。第一选择菜单中的选定选项将填充第二选择菜单,但仅使用大于第一选择菜单中选定值的值

<select id="selectMenu1">
  <option value="Select">Select</option>
  <option value="10">10</option>
  <option value="9">9</option>
  <option value="8">8</option>
  <option value="7">7</option>
  <option value="6">6</option>
  <option value="5">5</option>
  <option value="4">4</option>
  <option value="3">3</option>
  <option value="2">2</option>
  <option value="1">1</option>
</select>
<select id="selectMenu2">
</select>
第一个选择菜单的值范围为1到10,因此,如果选择了“4”,第二个菜单将显示从5到10的选项

我需要动态填充第二个选择菜单,而不是简单地从选择菜单中“删除”选项

<select id="selectMenu1">
  <option value="Select">Select</option>
  <option value="10">10</option>
  <option value="9">9</option>
  <option value="8">8</option>
  <option value="7">7</option>
  <option value="6">6</option>
  <option value="5">5</option>
  <option value="4">4</option>
  <option value="3">3</option>
  <option value="2">2</option>
  <option value="1">1</option>
</select>
<select id="selectMenu2">
</select>
试试这个

<script>
    $(function(){
         $('#selectMenu1').change(function(){
             var selectedVal = parseInt($('#selectMenu1').val());
             $('#selectMenu2').empty();
             for(var i = selectedVal + 1; i < 11; i++){
                 var opt = new Option(i, i);
                 $('#selectMenu2').append(opt);
             }

         });
    });

</script>

您可以克隆选项元素,只过滤您需要的内容,然后在另一个选项上替换它们,选择:

$'selectMenu1'。在'change'上,函数{ var menuOne=$this,menuTwo=$'selectMenu2'; menuOne.children'option'.clone.filterfunctionindex,el{ 返回编号$el.val>NumbermenuOne.val }.appendTomenuTwo.empty; }; 选择 10 9 8. 7. 6. 5. 4. 3. 2. 1.
您可以将事件绑定到selectMenu1以侦听更改,然后选择on change 将选定的值放入变量selected并循环使用选项 筛选小于所选值的值并将其放入selectMenu2

$'selectMenu1'。在'change'上,函数{ var selected=$选项:selected',this.val; var menu2Option=; $this.find'option'.eachfunctionidx,ele{ ifNumber$this.val>已选定 { menu2Option++$this.text+; } } $'selectMenu2'.htmlmenu2选项; } 选择 10 9 8. 7. 6. 5. 4. 3. 2. 1.
这看起来很棒,如果我的值包含小数,它还能工作吗?e、 g 0.1、0.2、0.3等。如果有小数,则需要将parseInt更改为数字,因为pasreInt将只返回整数。我可以使用parseFloat来表示小数吗?另外,我需要第二个菜单的起始值大于,不等于第一个菜单中选择的值。请参阅编辑的答案,是,您可以使用parseFloat。在这种情况下,它与数字相同,如果您想从更大的值开始,只需去掉等号即可