Jquery 在循环中的localstorage中存储select下拉列表的值

Jquery 在循环中的localstorage中存储select下拉列表的值,jquery,for-loop,local-storage,Jquery,For Loop,Local Storage,我目前正在使用localStorage存储一组表单值。不幸的是,我们使用的是下拉输入字段,当我用以下命令序列化数组时:$formID.serializeArray;它序列化文本输入,但不序列化选择下拉列表 因此,我不得不使用单击事件处理程序存储这些值,如下所示: $("#k12_msa_1").click(function() { localStorage.setItem("k12", "YES"); }); $("#k12_msa_2").click(function() { localSto

我目前正在使用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,因此非常感谢您的帮助

你能给JSFIDLE提供一个可行的例子吗?@DanJ。感谢您的快速回复!我已经将代码的部分副本放在一起,链接如下。如您所见,当您刷新页面时,您在文本输入字段中键入的任何内容都将被保存。但是,“是/否”下拉列表不会显示。我不担心评级下降,因为我认为如果我计算出是/否,另一个将大致遵循相同的结构。无论如何,这是小提琴:。第1-25行很好用。然而,从第27-41行开始,我的jquery就不起作用了。我认为第42行之后的内容无关紧要。