我选择了这样的框
<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 ...
我该怎么做?如果可能,如果不是,我会找到另一种方法来获得这些对,但优先级是在序列化时获取选择框中的所有选项而不仅仅是选择的那些。
答案 0 :(得分:1)
你必须自己构建查询字符串,因为jQuery中没有允许你这样做的魔术函数。以下是您的工作方式:
获取对选项元素的引用:
var $select = $('select');
var selectName = $select.attr('name');
var $options = $select.find('option');
浏览选项元素并检索value和lpprobability属性对:
var optionPairs = $.map($options, function(element) {
var $element = $(element);
return selectName + '=' + $element.val() + '&lpprobability=' + $element.attr('lpprobability');
});
最后,与&amp;:
一起加入他们var queryString = optionPairs.join('&');