2014-04-27 75 views
1

我有选择框这样的Javascript/jQuery的系列化所有的选项中选择标签

<select size="20" multiple="" id="left_lps" name="lps[]"> 
    <option lpprobability="10" lpname="1 - Chrome" id="opt8" value="8">1 - Chrome</option> 
    <option lpprobability="20" lpname="2 - Chrome" id="opt9" value="9">2 - Chrome</option> 
    <option lpprobability="33" lpname="3 - Chrome" id="opt10" value="10">3 - Chrome</option> 
    <option lpprobability="15.33" lpname="4 - Chrome" id="opt11" value="11">4 - Chrome</option> 
    <option lpprobability="50" lpname="5 - Skype" id="opt12" value="12">5 - Skype</option> 
    <option lpprobability="23" lpname="6 - Skype" id="opt13" value="13">6 - Skype</option> 
    <option lpprobability="80" lpname="7 - Skype" id="opt14" value="14">7 - Skype</option> 
    <option lpprobability="11" lpname="8 - Skype" id="opt15" value="15">8 - Skype</option> 
    <option lpprobability="26" lpname="9 - Skype" id="opt16" value="16">9 - Skype</option> 
    <option lpprobability="33" lpname="10 - Skype" id="opt17" value="17">10 - Skype</option> 
</select> 

当我序列化此我只得到选择的选项,但我需要在此选择框中的所有选项。我怎么做?此外,从这个选择框我需要数组对(id,lpprobability)。

在我需要得到像这样的结尾:

lps[]=8&lpprobability[]=10&lps[]=9&lpprobability=20&lps[]=10&lpprobability[]=33 ... 

我该怎么办呢?如果可能的话,如果没有,我会找到另一种方法来获得这些对,但优先考虑的是在序列化时,在选择框中获取所有选项,而不仅仅是选定的选项。

回答

1

您必须自己构建查询字符串,因为jQuery中没有任何魔术功能可以让您这样做。这里是你会怎么做:

获取对选项元素的引用:

var $select = $('select'); 
var selectName = $select.attr('name'); 
var $options = $select.find('option'); 

经过选择的元素和检索值和lpprobability属性对:

var optionPairs = $.map($options, function(element) { 
    var $element = $(element); 
    return selectName + '=' + $element.val() + '&lpprobability=' + $element.attr('lpprobability'); 
}); 

最后,加入他们&:

var queryString = optionPairs.join('&'); 
+0

感谢您的帮助,但我找到了另一种方式。由于这个选择框在开始时是空的,选项被添加并从中删除,所以我决定使用一些不可见的div来处理输入,所以当我在整个窗体上调用序列化时,我得到了我想要的:D – clzola

相关问题