javascript - 当选择值作为另一个选择的函数动态加载时,如何在不使用 ctrl 键的情况下选择多个值

标签 javascript jquery html web-applications wicket

我在我的 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 的 ListMultipleChoice 创建)。

为了在不按 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"
       });
   });
});

Here's a test fiddle

关于javascript - 当选择值作为另一个选择的函数动态加载时,如何在不使用 ctrl 键的情况下选择多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712330/

相关文章:

javascript - 在javascript中将数字转换为日期格式 yyyymmdd 到 mm/dd/yyyy

jquery - 单击图像时在 Colorbox 中加载 iframe

javascript - Google Places API 错误

html - CSS 中下拉菜单的定位

javascript - 在基于 Web 的应用程序中,在何处正确且安全地存储 JWT token ?

javascript - Mocha chai-http 响应总是返回 null

html - 如何在加载时预先选择单选按钮(Express/NodeJS/EJS)?

html - 对齐按钮中心小屏幕 Bootstrap

javascript - Mongoose/MongoDB - 如何在聚合查询中使用 promise

JQuery Mobile - 在表格内的同一行输入和标签,无论屏幕宽度如何