Javascript 使用jquery从下拉列表中获取所选选项的值。

Javascript 使用jquery从下拉列表中获取所选选项的值。,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,当我得到这些值时,我遇到了一个问题​​选定选项的列表 让我解释一下,我有一个选项列表: <select> <option value='1'>Option1</option> <option value='2'>Option2</option> <option value='3'>Option3</option> <option value='4'>Option4</op

当我得到这些值时,我遇到了一个问题​​选定选项的列表

让我解释一下,我有一个选项列表:

<select>
   <option value='1'>Option1</option>
   <option value='2'>Option2</option>
   <option value='3'>Option3</option>
   <option value='4'>Option4</option>
   <option value='5'>Option5</option>
</select>
如果我只选择一个选定选项,它会工作,但当我同时选择多个选项时,each()函数会在数组中为选定的选项数插入相同的值

当我单击submit按钮时,数组包含的listValO值是相同值的几倍

<select>
   <option selected value='1'>Option1</option>
   <option selected value='2'>Option2</option>
   <option selected value='3'>Option3</option>
   <option>Option4</option>
   <option>Option5</option>
</select>

选择1
选择2
选择3
选择4
选择5
listValO只返回3次[1,1,1]。事实上,它选择了我单击的第一个或我想要的数组[1,2,3]


对不起,如果有英语错误的话。我希望您理解我的问题,并感谢您以后的回复。

首先,您需要将
multiple
属性添加到select,以便您可以选择多个选项。其次,您将在每个回调中重新声明一个新数组,因此最后只有一个选项

您应该改用
.val()

标记:

<select multiple>
   <option selected value='1'>Option1</option>
   <option selected value='2'>Option2</option>
   <option selected value='3'>Option3</option>
   <option>Option4</option>
   <option>Option5</option>
</select>
var optionsArray = $("select").val();

您需要在“选择”中添加多个属性以选择多个值:

 <select multiple="multiple">
   <option selected value='1'>Option1</option>
   <option selected value='2'>Option2</option>
   <option selected value='3'>Option3</option>
   <option>Option4</option>
   <option>Option5</option>
 </select>

以及其他答案(使用多属性和$(this)),您正在为所选选项的每次出现重新声明数组。尝试在外部声明它:

var listValO = new Array();

$("select option:selected").each(function()
{
      var idOption = $(this).val();
      listValO.push(idOption);
});

使用
$(“选择”).val()
您必须为SELECT元素设置属性
multiple
,以便能够一次选择多个选项,然后使用@Satpal的建议,该建议将返回一个数组可能的see副本|
var listValO = new Array();
$("select").each(function()
{
listValO.push($(this).val());
});
//console.log(listValO) for test purpose
var listValO = new Array();

$("select option:selected").each(function()
{
      var idOption = $(this).val();
      listValO.push(idOption);
});