我正在尝试从多个选择中捕获所选项目,以便将它们插入到另一个选择输入中。问题是,当我尝试使用split
函数拆分所选元素时,控制台会向我抛出下一个错误:Uncaught TypeError: strValue.split is not a function
<select multiple id="e9" name="musc_group[]">
<option value="Chest">Chest</option>
<option value="Back">Back</option>
</select>
$("#e9").change(function(){
var strValues = $(this).val(); // This gives you the string "Chest,Back"
var arrValues = strValues.split(",");
});
在所有活动中,一切正常,但不在其中。
答案 0 :(得分:4)
.val()
返回select[multiple]
元素的值数组。
来自文档:
.val()
方法主要用于获取表单元素的值,例如input
,select
和textarea
。 对于select
元素,当没有选择任何选项时返回null
,并且当存在至少一个选项时,它返回包含每个所选选项的值的数组,并且可以选择更多因为multiple
属性存在。
(强调我的)
这意味着您对// This gives you the string "Chest,Back"
的评论不正确,因为您实际上是在获取一个可能正在转换为字符串的数组(使用alert
?)
答案 1 :(得分:0)
您已经获得了一系列值,原因是在select选项中您可以允许多个选项,并且您可以使用multiple
元素上的select
属性。所以值总是以数组的形式返回,因为如何更好地返回多个值。
所以不需要拆分,它已经是一个数组。
答案 2 :(得分:0)
Multiple select返回一个不是字符串的数组,
$("#e9").change(function(){
var strValues = $(this).val(); // This gives you the string "Chest,Back"
alert(strValues[0]);
alert(strValues[1]);
});
答案 3 :(得分:0)
.val()
返回一系列选定元素。所以,你不需要split
功能。并且数组元素显示为,
的字符串连接。你可能会错过了解。