保留选项列表以供选择
Keep list of options for select
使用IE 10...所以我不能只是在选择中隐藏和显示选项。
如果我使用 JavaScript 函数更改时删除某些选项怎么办,bit 希望将这些已删除的选项存储在某个地方,以便如果他们再次更改以前的选择,函数将删除以前的选项并添加首先删除的旧选项。 我希望这是有道理的。
我有 2 个选择。 我的第一个选择有两个选择,基于从这个选择中选择的任何内容,第二个选择的选项将被删除或添加。 默认情况下,第二个选择中已经包含所有选项。 在选择第一个选择选项之前,它只是被禁用。
现在我认为我能做的是克隆第二个选择以保留所有选项,但我需要这个克隆是全局的,这样我就不会在每次函数运行时永远丢失已删除的选项。 然而,全球化是不好的。
我需要在HTML/Javascript中实现所有这些。
* 到目前为止,我所尝试的只是获取第 2 个选择的所有选项并根据第 2 个选择的选项的 ID 删除选项的功能,这是第一个选择中的代码,用于过滤第二个选择。
*感谢您的任何帮助!
IE不允许display: none
<option>
元素。您必须存储选项列表,并在需要时构造选项列表。
我创建了一个简单的FilteredCollection
类,它存储源列表,并且可以返回过滤视图而不会影响源数组。
// jQuery Plugins.
(function($) {
// Populate a select input with options.
$.fn.populateSelect = function(items, clear) {
if (clear) this.empty();
this.append(items.map(function(item) { return $('<option>', item); }));
};
}(jQuery));
// A filtered collection view.
var FilteredCollection = function(source) {
this.source = source;
};
FilteredCollection.prototype = {
getSource : function() { return this.source; },
doFilter : function(filterFn) { return this.source.filter(filterFn); }
};
// Select options.
var makes = new FilteredCollection([
{ value : "1", text : "Ford" },
{ value : "2", text : "Toyota" },
{ value : "3", text : "General Motors" },
{ value : "4", text : "Honda" },
{ value : "5", text : "Hyundai" },
{ value : "6", text : "Volkswagen" },
{ value : "7", text : "Nissan" },
{ value : "8", text : "Peugeot" }
]);
// A state flag to flip for each change.
var state = 0;
$(function() {
// Populate selection options.
$('#make').populateSelect(makes.getSource());
$('#make').on('change', function() {
// Hide every even-indexed select option...
$('#make option').each(function(index, option) {
$('#make').populateSelect(makes.doFilter(function(item, index) {
return index % 2 === state;
}), true);
});
state ^= 1 // Flip the state.
});
});
select option.hide {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="make"></select>
相关文章:
- Angular:使用选择列表选择过滤代码中的对象
- 在Twitter BootStrap嵌套下拉列表中托管一个选择列表(IE 9特定)
- Jquery不允许来自多个选择列表的相同值
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 如何修剪表单'提交'多级选择列表的值
- 使用jQuery获取选择列表中每个更改的值
- Javascript/Jquery将选择列表更改为单选按钮
- 动态填充的选择列表
- jqgrid动态加载选择列表
- 使用peta poco ORM在MVC应用程序中创建选择列表
- 我正在尝试从 xhtml 文件中动态提取所有
元素,并使用 javascript 将它们放入选择列表中
- JQuery无法找到选择列表
- 我正试图动态地拉动<h3>元素,并将它们放在选择列表中
- 根据预选,用值填充选择列表
- 在PHP中将下拉选择列表的内容从一个表单传递到另一个表单
- 我已经创建了一个动态的下拉选择列表,它指向一行;如何使该行成为变量
- 允许用户订购选择列表
- 动态选择列表AJAX和插入数据库表通过张贴形式
- 使用jQuery的层次选择列表
- 如何在选择列表项时重新加载iframe