2014-04-21 72 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