JQuery UI Multiselect如何获取选定的选项值

966*_*66p 5 jquery-ui multi-select

在Michael Aufreiter搜索如何在JQuery UI小部件中获取所选选项值时浪费了我的一天.这是他的演示站点和github的链接:http://quasipartikel.at/multiselect/

因此,我只需要选择选项的值字段,而无需POST/GET发送到PHP脚本.我尝试了很多方法并且没有结果.需要你的帮助和想法

*由于Aufreiter发现了很多关于jquery ui multiselect但无用的主题:s*

Ver*_*igo 16

这应该工作.使用Chrome控制台进行测试

$("#countries").val();
Run Code Online (Sandbox Code Playgroud)


Per*_*Tew 3

我访问了上面列出的网站,并且能够在我的 Chrome 控制台中运行它:

$('.ui-multiselect .selected li').each(function(idx,el){ console.log(el.title); });
Run Code Online (Sandbox Code Playgroud)

看起来您想要的值存储在 div.selected 元素内列表项的标题属性中。

编辑:

哎哟!当然你想要这些价值观。不好意思,朋友。完全错过了。真正的商品存储在jQuery data()对象中。在本例中,您需要的键是“optionLink”。它维护对选项元素的引用。'.selected' div 中的每个列表项都使用 jQuery.data() 方法向其添加底层选项。

因此,您需要获取选定的列表项,进行迭代,从数据 jQuery 数据存储中获取“optionLink”,然后获取值。

以下代码适用于示例页面:

$('.ui-multiselect .selected li').each(function(idx,el){
    console.log(el);
    var link = $(el).data('optionLink');
    // link now points to a jQuery wrapped <option> tag


    // I do a test on link first.  not sure why, but one of them was undefined.
    // however, I got all four values.  So I'm not sure what the first <li>
    // is.  I'm thinking it's the header...
    if(link){

        // here's your value. add it to an array, or whatever you need to do.
        console.log(link.val());
    }

});
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到多选。它很光滑。但我对你试图得到一些东西的挫败感表示同情。'getSelectedOptions()' 方法会很好。

干杯