2014-04-21 108 views
0

jQuery Mobile的OPTGROUP的价值观我有一个这样的OPTGROUP例如:存储在SQLite的

<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的样式,您可以选择多个箱子。我想知道,一旦你选择了多个盒子,它就会在选择菜单上以逗号分隔。像:

选项1,选项2(如果两个选项1和选项被选中)

我怎么会那么商店选项1和选项在我的数据库不同的价值观?例如,如果我有一个名为 “selectedoptions” 专栏中,我怎么会有这样的:

selectedoptions

选项1
选项2

而不是:

selectedoptions

选项1,选项2

在我的数据库表中

希望这是有道理的,任何答案的欢迎。

编辑:这是我用来存储多选值码:

db.transaction(function(transaction) { 
       transaction.executeSql('INSERT OR REPLACE INTO myTable(Id, selectedoptions)\ 
             VALUES(1,?)',[$('#myoptgroup').val()], 
             nullHandler,errorHandler); 

       }); 

这将返回这样我选择的值:如果两者都如前所述选择选项1,选项2在我的表行。

+0

您是否想要在表中创建一个单独的行每个选定的选项?如果是这样,请在逗号字符var optArray = $('#myoptgroup')。val()。split(“,”)上分割字符串,然后遍历结果数组并将每个数据添加到数据库中。 – ezanker

+0

如果选择了option1和option2,那么我希望它们存储在不同的行上。谢谢我会看看拆分 – Mohd

+0

每当我尝试使用这种拆分方法时,我得到Uncaught TypeError:undefined不是函数 – Mohd

回答

1

在多重选择元素中,val()实际上已经返回了所选值的数组。您看到逗号分隔列表,因为这是调试器显示数组的方式。所以,你可以轻松地重复数组是这样的:

var sel = $("#opt1").val(); 
for (var i=0; i< sel.length; i++){ 
    //create individual row here 
    alert(sel[i]); 
} 

DEMO