如何在选择值作为另一个选择的函数动态加载时不使用ctrl键选择多个值
How to select multiple values without ctrl key when select values are loaded dynamically as a function of another select
我在我的web应用程序中使用'wicket'框架。我有两个这样的选择:
<select wicket:id="brands" onchange="applyMultiSelection ();">
<option value="volvo">Volvo</option>
</select>
<select wicket:id="models" id="models">
<option value="A">A</option>
</select>
使用wicket模型,在第一个中的值被选中后,第二个的值被动态加载。第二个是多选择(是用wicket的listmultichoice创建的)。
为了在不按ctrl键的情况下选择几个值,我在html头部添加了以下内容:
<script src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
<style type="text/css">
.multi-selection {
background-color: Highlight;
color: HighlightText;
}
</style>
<script type="text/javascript">
// Applies multiselection on select tags
var multiselection = function(){
$("#models").MultiSelect({
css_class_selected: "multi-selection"
});
};
function applyMultiSelection () {
$('#models').ready( multiselection() );
}
</script>
它似乎不起作用,我在静态html中尝试了类似的多选择,它允许我选择多个值,只需点击鼠标,所以我怀疑我可以接近解决方案。什么好主意吗?
我认为主要问题是值是动态更新的,在你的代码运行select
可能是空的。您可以通过将函数合并为一个来进一步缩短脚本。
$(function(){ // this is short for $(document).ready()
function applyMultiSelection (){
$("#models").MultiSelect({
css_class_selected: "multi-selection"
});
};
});
如果你不能编辑脚本来添加一个触发事件或类似的东西,我可以建议使用以下插件。
https://github.com/hazzik/livequery/blob/master/jquery.livequery.js这个插件将检查是否有新的option
元素添加或创建。现在每次你动态添加新元素插件应该运行.MultiSelect()
$(function(){
$("#models option").livequery(function () {
$("#models").MultiSelect({
css_class_selected: "multi-selection"
});
});
});
这是一个测试小提琴
看起来你把你的代码放在头部部分,你应该试试这个:
<script type="text/javascript">
$(function(){
// Applies multiselection on select tags
var multiselection = (function(){
$("#models").MultiSelect({
css_class_selected: "multi-selection"
})();
};
});
</script>
try 2 use select2multichoice of select2 library.
http://ivaynberg.github.io/select2/相关文章:
- 如何根据对具有多行的先前列表的选择来动态加载下拉列表
- 如何使新选择的html选项成为页面加载的第一选择
- 单击时选择2(未选中),显示加载微调器javascript
- 根据页面加载时的单选按钮选择显示某些字段
- 记住<选择>重新加载页面
- 如何在页面加载angular js上设置从ajax调用中选择的选项
- 如何在页面加载后禁用下拉列表框项目的选择
- Jquery - 根据下拉菜单选择加载 XML 文件
- 选择“加载 XMLHTTP 不会随表单一起发送”
- 从服务器中选择加载选项
- 根据下拉选择加载新页面
- 异步淘汰observableArray选择加载选项
- 在选择框中选择加载选项时
- 选择加载以前的数据- AngularJS
- 选择加载具有现有值的页面
- Ajax下拉选择加载数据
- 多个引导选择加载非常慢
- 触发器以编程方式选择加载方法
- 保留“;高度“;Ajax调用后jQuery中的声明(下拉选择加载产品数据,重置其他页面元素的高度)
- Mvc5基于searchTerm通过ajax选择加载结果