jQuery更改所选值并提交基于localStorage值的表单

时间:2018-11-28 09:22:07

标签: javascript jquery html local-storage

我有问题。我选择了名称类别,并输入了代码:

if (localStorage.getItem('category') !== null) {
  $('select[name=category]').val(localStorage.getItem('category')).trigger('change');
  $('.form-search').submit();
}

如果在本地存储中我有ID,那么我将更改select中的所选值。但是如何提交此表格?我的代码无法正常工作,因为页面重新加载了很多次。

我的表格:

<form method="get" class="form-search">
....
      <select name="category">
            <option value="1">Auto</option>
            <option value="2">Sport</option>
            ...
      </select>
</form>

2 个答案:

答案 0 :(得分:0)

由于表单尚未action,因此浏览器将表单提交到此页面并重新加载页面,并且由于您没有删除localStorage,因此代码再次运行。因此,您应该在提交表单之前删除localStorage category

var category = localStorage.getItem('category');
if (category !== null) {
  $('select[name=category]').val(category).trigger('change');
  localStorage.removeItem('category');
  $('.form-search').submit();
}

答案 1 :(得分:0)

您可能不需要触发器

if(localStorage.getItem('category') !== null) {
 $('select[name=category]').val(localStorage.getItem('category'));
    $('.form-search').submit(function(e){
      e.preventDefault();
    });
}

检查代码here