2016-10-04 37 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]);