2012-01-05 78 views
5

浪费我的一天,同时搜索如何获得由Michael Aufreiter在JQuery UI小部件中的选定选项值。这里是他的演示网站和github的链接:http://quasipartikel.at/multiselect/JQuery UI Multiselect如何获取选定的选项值

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

*发现了大约jQuery UI的多选,但没有用,因为Aufreiter的许多主题:S *

回答

3

我去你有上面列出的网站,并能够在运行这个我铬控制台:

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

看起来你想要的值存储在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()); 
    } 

}); 

这是第一个我所见过的多选的。它很光滑。但我同情你的挫折试图找出一些东西。 'getSelectedOptions()'方法会很好。

干杯

+0

我需要的字段值,而不是它的名称(这确实是标题)http://clip2net.com/s/ 1swzK有名字,但没有值。而且我无法使用它的文本搜索字段的值,因为我放入多选控件的数据正在脱离社交网络,并且保存1k海量数据并不明智,然后发布它们,然后按名称搜索值,然后给出结果给用户:s仍然需要你的帮助maestro和感谢张贴:) – 966p 2012-01-05 22:49:47

+0

好吧。编辑帖子并添加代码以获取值。祝你好运! – 2012-01-06 03:17:17

+0

太棒了!让我吻你哈哈:))非常感谢你,我的例子是可用http://russia-golosuet.ru/otkr/test.php – 966p 2012-01-06 09:25:16

13

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

$("#countries").val(); 
+1

不要忘记在您的选择标签中添加多个=“多个” – coderman 2014-04-22 18:41:44

1

尝试访问关闭事件中的选定值。

例如

$("#dropdown").multiselect({ 
    header: false, 
    selectedList : 1, 
    height: "auto", 
}).multiselectfilter().bind("multiselectclose", function(event, ui) { 
    var value = $("#dropdown").val(); 
}); 

希望有所帮助。

1

最好的解决方案

$('#select').multiselect({ 
    selectAllValue: 'multiselect-all', 
    enableCaseInsensitiveFiltering: true, 
    enableFiltering: true, 
    height: "auto", 
    close: function() { 
      debugger; 
      var values = new Array(); 
      $(this).multiselect("getChecked").each(function(index, item) { 

       values.push($(item).val()); 
      }); 
      $("input[id*=SelectedValues]").val(values.join(",")); 
    } 
}); 
0

你可以试试这个:

$('#ListBoxId').multiselect({ 
    isOpen: true, 
    keepOpen: true, 
    filter: true 
}); 
相关问题