我有一个这样的optgroup,例如:
<select id="opt1" multiple="multiple" data-native-menu="false" data-icon="grid" data-iconpos="left">
<optgroup label="optgroup options" id = "opt">
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</optgroup>
</select>
它采用jQuery Mobile风格,您可以选择多个框。我想知道,一旦你选择了多个方框,它就会出现在选择菜单上用逗号分隔的列表中。像:
option1,option2(如果同时选择了option1和option2)
我如何将option1和option2存储为数据库中的单独值?例如,如果我有一个名为“selectedoptions”的列,我将如何拥有它:
selectedoptions
选项1
option2
而不是:
selectedoptions
option1,option2
在我的数据库表中
希望这是有道理的,欢迎任何答案。
编辑:这是我用来存储多选值的代码:
db.transaction(function(transaction) {
transaction.executeSql('INSERT OR REPLACE INTO myTable(Id, selectedoptions)\
VALUES(1,?)',[$('#myoptgroup').val()],
nullHandler,errorHandler);
});
这将返回我选择的值,如下所示:如果之前提到的那两个都被选中,则我的表行中的option1,option2。
答案 0 :(得分:1)
在多重选择元素中,val()实际上已经返回了所选值的数组。您正在看到以逗号分隔的列表,因为这是调试器显示数组的方式。所以你可以像这样轻松地迭代数组:
var sel = $("#opt1").val();
for (var i=0; i< sel.length; i++){
//create individual row here
alert(sel[i]);
}
<强> DEMO 强>