将选择下拉列表的值存储在循环中的localstorage中

时间:2014-08-04 18:24:02

标签: jquery for-loop local-storage

我目前正在使用localStorage存储一堆表单值。不幸的是,我们使用下拉输入字段,当我用这个序列化数组时:$("#formID")。serializeArray();它序列化了文本输入,但没有序列化选择下拉列表。

因此我必须使用点击事件处理程序存储值,如下所示:

$("#k12_msa_1").click(function() { localStorage.setItem("k12", "YES"); });
$("#k12_msa_2").click(function() { localStorage.setItem("k12", "NO"); });
if (localStorage.getItem("k12") == "YES") { $("#k12_titletext").text("YES"); }
if (localStorage.getItem("k12") == "NO") { $("#k12_titletext").text("NO"); }

k之后的1是问题编号。由于我最终会遇到49个问题,因此我不希望每个问题都有四行代码。我想用一个循环。但是,我在构建循环时遇到了困难。我在想这样的事情:

var yes = function () {
localStorage.setItem("k" + i + 2, "YES");
}
var no = function () {
localStorage.setItem("k" + i + 2, "NO");
}
for (var i = 1; i <= 49; i++) {
$("#k" + i + "2_msa_1").on('click', yes() );
$("#k" + i + "2_msa_1").on('click', no() );
if (localStorage.getItem("k" + i + 2) == "YES") { $("#k" + i + "2_titletext").text("YES"); }
if (localStorage.getItem("k" + i + 2) == "NO") { $("#k" + i + "2_titletext").text("NO"); }
}
});

但是,它不起作用。我对jquery不擅长,所以任何帮助都会非常感激!

0 个答案:

没有答案