我正在尝试创建一个html select数组选项,如下所示
<select name="tablename">
<option value="['one','two','three']">Option one</option>
</select>
在javascript中
var myArray = new Array();
myArray[0] ="one";
myArray[1] ="two";
myArray[2] = "three";
option.value=myArray;
但是当我尝试使用
从中获取价值时var myArray2 = new Array();
myArray2 = $('select[name="tablename"]').val();
val=myArray2[0];
它没有返回任何东西......出了什么问题
答案 0 :(得分:2)
选项值只能存储字符串。您可以以某种字符串形式存储数组,并在JS中解析它。例如:
<select name="tablename">
<option value="['one','two','three']">Option one</option>
</select>
// JS
var myArray2;
myArray2 = $('select[name="tablename"]').val();
myArray2 = eval(myArray2);
alert(myArray2[0]);
答案 1 :(得分:1)
我不确定你想要做什么,但如果你想将数组["one","two","three"]
存储到单个OPTION
然后从javascript中读取这个数组,你可以做下一步:
HTML:
<select name="tablename">
<!-- IMPORTANT COMMENT: use single quotes for value='' and double quoutes for values in array -->
<option value='["one","two","three"]'>Option one</option>
</select>
jQuery的:
// reading array from OPTION
var myArray2 = jQuery.parseJSON($('select[name="tablename"]').val());
// myArray2 now is an javascript Array
console.info(myArray2);
<强>更新强>:
您可以使用本机javascript JSON
对象方法将Array转换为字符串,然后存储到html OPTION或SELECT值;或者将OPTION或SELECT的值转换为数组(,如果您不需要支持小于8的IE版本):
// store Array into OPTION value
myOption.value = JSON.stringify(["one","two","three"]);
// read Array from SELECT value from your example
var newArray = JSON.parse($('select[name="tablename"]').val());
在MSDN中了解更多信息JSON.parse()
和JSON.stringify
:http://msdn.microsoft.com/en-us/library/cc836458%28v=VS.94%29.aspx和MDN:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/JSON
答案 2 :(得分:0)
首先,编辑你的标记。
<option value="[one,two,three]">Option one</option>
获取选项标记的值。
v = $('option').val();
'v'在字符串对象中将是“[one,two,three]”。
v = v.slice(1, -1);
那么,它是“一,二,三”
现在分开了,
yourArray = v.split(',');
最后你得到你的阵营[“一个”,“两个”,“三个”] :)