2016-10-04 38 views
0

因此,我有一個網頁上的表單是多選擇選項輸入,例如。預加載多個選擇列表

<option name="testData" multiple="multiple"> 
    <select value="1">Option 1</select> 
    <select value="2">Option 2</select> 
    <select value="3">Option 3</select> 
    <select value="4">Option 4</select> 
    <select value="5">Option 5</select> 
</option> 

一旦提交表單所選擇的選項存儲在陣列內(例如,1,2,3)

的問題是,如果我重新訪問該頁面我希望數據被分裂迴轉化爲個人價值觀,並確保他們是否曾被選中,再次被選中。

所以在這種情況下,值1,2,3將在選擇菜單中被選中。

該信息存儲在數據庫中,並正在正確引入。我所要求的是如何取值(1,2,3等),並在選項列表中標識每個選項。用戶可以根據需要進行修改。

如果可能的話,這可以用jQuery來完成嗎? Javascript也可以。

讓我知道這需要多一點解釋,我會盡我所能回答任何問題提前

感謝

+1

它應該是'<選擇name = 「TESTDATA」 多個= 「多個」> 選項1'並使用'.val()'將值設置爲'$('[name =「testData」]')。val([1,2,3])' – Satpal

+0

唯一的問題是,值可能不總是1,2,3,它可能是每次不同的值,例如1,2,5或甚至1,3,4,5 但它將永遠是一個在選項列表 – Tomatron

+0

內找到的值可以使ajax調用來獲得數組數 –

回答

1

您可以做的是將所選選項的數組存儲到會話中存儲(如果你想避免AJAX調用,它會使你的腳本更快)

// When your user clicks on the submit button 
$("#id_of_your_submit_btn").click(function() { 
    // store the selected options into the sessionStorage 
    sessionStorage.setItem('my_array_of_selected_values', array_of_selected_options); 
}); 

那麼當你的頁面將重新加載,你可以請檢查是否該sessionStorage的設置,然後動態地選擇先前選擇的選項(如亞歷建議)

$(document).ready(function() { 
    console.log("ready!"); 
    var selected_options = sessionStorage.getItem('my_array_of_selected_values'); 
    if(selected_options) { 
     // if something is set into this sessionStorage variable 
     // we select the options dynamically 
     $("[name='testData']").val(selected_options); 
    } 

}); 

NB:檢查,有針對性的瀏覽器都支持https://developer.mozilla.org/fr/docs/Web/API/Window/sessionStorage

+0

謝謝我認爲這可以工作,只是爲了檢查什麼會進入'my_array_of_selected_values'?這只是選擇列表的名稱?例如。'testData' 對不起,這些愚蠢的問題! – Tomatron

+0

不用擔心,'my_array_of_selected_values'是sessionStorage變量的名稱。 'testData'是您的選項HTML標籤的名稱。變量'array_of_selected_options'應該用你的數組''1,2,3'設置'希望這會有所幫助 – maximilienAndile

0

請試試這個,

$("[name='testData']").val([1,2,3]); 

$("select").val([1,2,3]);