预加载多个选择列表

时间:2016-10-04 07:45:04

标签: javascript jquery html-select

所以我在网页上有一个表单,它是一个多选选项输入,例如

<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也没关系。

如果需要更多解释,请告诉我,我会尽力回答任何疑问

提前致谢

2 个答案:

答案 0 :(得分: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是否设置,然后动态选择之前选择的选项(如Alexandru建议的那样)

$( 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

答案 1 :(得分:0)

请试试这个,

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

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