一个HTML用户界面元素,用于从有限的选项集合中选择一个或多个选项。
我有一个输入表单,可以让我从多个选项中进行选择,并在用户更改选择时执行某些操作。例如, 一个
我有两个这样的输入 a b 我有两个像这样的<select>输入 <select id="sel1"> <option value="a">a</option> <option value="b">b</option> </select> <select id="sel2"> //if 'a' is selected above, //<option>apple</option>, <option>airplane</option> //if 'b' is selected above, //<option>banana</option>, <option>book</option> </select> 我想根据sel1中的选择列出不同的选项集。 我可以像这样使用 onchange 属性获取选定的值: <select id="sel1" onchange="giveSelection(this)"> <script type="text/javascript"> function giveSelection(sel) { var selected = sel.value; } </script> 但我无法想出一种方法来使用此值在sel2中输出不同的选择选项。 你快到了。因为你已经得到sel1的值,剩下的就是根据值过滤sel1的选项。 var sel1 = document.querySelector('#sel1'); var sel2 = document.querySelector('#sel2'); var options2 = sel2.querySelectorAll('option'); function giveSelection(selValue) { sel2.innerHTML = ''; for(var i = 0; i < options2.length; i++) { if(options2[i].dataset.option === selValue) { sel2.appendChild(options2[i]); } } } giveSelection(sel1.value); <select id="sel1" onchange="giveSelection(this.value)"> <option value="a">a</option> <option value="b">b</option> </select> <select id="sel2"> <option data-option="a">apple</option> <option data-option="a">airplane</option> <option data-option="b">banana</option> <option data-option="b">book</option> </select> 我使用 jQuery 开发了一个可以处理无限量的选择组合下拉列表框的版本。希望这对某人有用。 function jq_ChainCombo(el) { var selected = $(el).find(':selected').data('id'); // get parent selected options' data-id attribute // get next combo (data-nextcombo attribute on parent select) var next_combo = $(el).data('nextcombo'); // now if this 2nd combo doesn't have the old options list stored in it, make it happen if(!$(next_combo).data('store')) $(next_combo).data('store', $(next_combo).find('option')); // store data // now include data stored in attribute for use... var options2 = $(next_combo).data('store'); // update combo box with filtered results $(next_combo).empty().append( options2.filter(function(){ return $(this).data('option') === selected; }) ); // now enable in case disabled... $(next_combo).prop('disabled', false); // now if this combo box has a child combo box, run this function again (recursive until an end is reached) if($(next_combo).data('nextcombo') !== undefined ) jq_ChainCombo(next_combo); // now next_combo is the defining combo } // quick little jquery plugin to apply jq_ChainCombo to all selects with a data-nextcombo on them jQuery.fn.chainCombo = function() { // find all divs with a data-nextcombo attribute $('[data-nextcombo]').each(function(i, obj) { $(this).change(function (){ jq_ChainCombo(this); }); }); }(); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <!-- // select boxes... 1) first combo simply add data-nextcombo (class, id, etc) and onchange function 2) next combo that is controlled by first, add data-nextcombo (add onchange="jq_ChainCombo(this)" if not using the jquery plugin) and disable to hide entire option list until required. 3) last combo, don't bother adding a data-nextcombo to it // data... 1) data should have a data-id, and data-option tag 2) data-option should be -1 if it is the root combo box, or if a child combo, the data-option should be the data-id of the parent. --> <!-- parent --> <select class="combo-a" data-nextcombo=".combo-b"> <option value="1" data-id="1" data-option="-1">Bob's Coffee</option> <option value="2" data-id="2" data-option="-1">Sally's Diner</option> <option value="3" data-id="3" data-option="-1">Jim's Waffle House</option> <option value="4" data-id="4" data-option="-1">No Mart</option> <option value="5" data-id="5" data-option="-1">Ye Olde Ale Tavern</option> </select> <!-- child --> <select class="combo-b" data-nextcombo=".combo-c" disabled> <option></option> <option value="1" data-id="1" data-option="1">15th's Avenue Coffee House</option> <option value="2" data-id="2" data-option="4">14th Street location</option> <option value="3" data-id="3" data-option="4">13th Avenue</option> <option value="4" data-id="4" data-option="3">Scarlet Temple Location</option> <option value="5" data-id="5" data-option="2">New Jack City</option> <option value="6" data-id="6" data-option="5">Bob street</option> <option value="7" data-id="7" data-option="1">Billy Avenue</option> </select> <!-- child/last --> <select class="combo-c" disabled> <option></option> <option value="4" data-id="4" data-option="2">new display</option> <option value="3" data-id="3" data-option="3">new display</option> <option value="5" data-id="5" data-option="2">new display</option> <option value="6" data-id="6" data-option="2">new display</option> <option value="7" data-id="7" data-option="4">display #1</option> <option value="8" data-id="8" data-option="5">new display</option> <option value="9" data-id="9" data-option="5">new display</option> <option value="10" data-id="10" data-option="5">new display</option> <option value="11" data-id="11" data-option="5">new display</option> <option value="12" data-id="12" data-option="5">new display</option> <option value="13" data-id="13" data-option="6">new display</option> <option value="14" data-id="14" data-option="6">new display</option> <option value="15" data-id="15" data-option="6">new display</option> <option value="16" data-id="16" data-option="1">Front's Counter</option> <option value="17" data-id="17" data-option="1">back counter</option> <option value="18" data-id="18" data-option="4">display #2</option> </select>
使用Angular 4,我有一个html模板,我想要一个有两个选项的选择框。默认情况下应预先选择其中一个选项。 ...
如何使用Python中的Selenium从https://www.amazon.in/中的下拉列表框中选择Books?
如何使用Python中的Selenium从https://www.amazon.in/下拉列表框中选择选项书?我正在尝试代码:driver.find_element_by_xpath(“// * [@ id ='searchDropdownBox']”)....
我试图找到一个解决方案,但我没有找到我想要的。这是一个例子: Select ...
现在,我无法成为唯一一个遇到麻烦的人。我有一个用React构建的简单页面。在其中,我有一个简单的组件,它可以实现选择和 - 更改值 - 触发......
我的项目中有两个表用于学生活动。 (一个表(名称:evidall),我存储我的主题(在我的代码中,他们在外语中命名为'predmet'),我有另一个表(名称:...
我希望只读的“选择”元素不可选择,其行为与只读输入框相同。在下面的代码中,您无法将输入框的值更改为“ abc”。但是,...
我有问题,我尝试了几次尝试,但没有任何作用。我有这个选择名称类别$(“#category”)。change(function(){if($(this).val()==“Strings”){$(“#instrument”)....
我有几个HTML下拉列表,由Excel工作表中的数据填充,通常有空单元格/列,因此我的下拉列表中充满了None(占位符)。例:选项1 ====== ...
我想通过css将复选框添加到使用IE 11的Multi Select。我使用的css在Edge等中工作,但不适用于IE 11. CSS和代码: 选项:在{content:“☐”}选项之前:...
如何在不使用Ctrl键的情况下使用jQuery或js获取多个选定的选项,在IE11中
我需要帮助,请使用IE 11和jQuery获取所选的选项。 (它在Edge中运行良好。)我在这里和其他地方尝试过很多链接,但没有成功。更新如果我删除功能....
Angular - 'HTMLOptionElement'类型中不存在属性'选项'
我试图根据从不同下拉列表中选择的值更改下拉列表中的选项。从网站上获得:表单选择更改动态列表选项元素教程。但是,我...
我有一个选择框,我试图在单击选择框时更改选项的背景颜色并显示所有选项。请参阅小提琴HTML:
我有一个选择,最初显示选择语言,直到用户选择一种语言。当用户打开选择时,我不希望它显示选择语言选项,因为它不是实际的......
代码:var newSelect = document.createElement('select');索引= 0; var optn = document.createElement(“option”); // langArray是一个包含不同项目的数组。大小//不固定...
使用jQuery作为JS对象向select中添加选项的最佳方法是什么?
使用jQuery从JavaScript对象添加选项的最佳方法是什么?我正在寻找一些我不需要插件的东西,但我也会对...感兴趣
我对Angular很新,有点不知所措。据我所知,我有一个组件,我可以显示像{{this}}这样的数据,它可以正常工作。现在,我想要选择那些数据......