我正在尝试使用存储在localStorage中的json数组中的项目填充wtform文本区域字段。每行应该有 1 个值,如下所示:
值1
值2
值3
当我使用 for 循环获取项目时,仅显示最后一个项目。
值3
任何协助将不胜感激。
function getValue() {
//sets requirements as a json array
var myinputs = $("[id^=reqInput]").map(function(){
return this.value;
}).get();
localStorage.setItem("reqs", JSON.stringify(myinputs));
console.log(myinputs);
// calls arrays and populates criteria form
for (var i = 0; i < myinputs.length; i++) {
var reqArray = myinputs[i];
console.log(reqArray);
document.getElementById("mission").value = reqArray;
};
};
从您的代码中,下面的语句将始终在每个循环中将以前的值替换为新值:
document.getElementById("mission").value = reqArray;
如果要将每个值打印在单独的行中,则需要将值附加到#mission
上(而不是替换它(,并将<br />
放在两者之间。
例:
// empty the element at first
document.getElementById("mission").innerHTML = ""
for (var i = 0; i < myinputs.length; i++) {
var reqArray = myinputs[i];
document.getElementById("mission").innerHTML += reqArray + "<br />";
};
我根据Noval Agung Prayogo的反馈进行了以下调整,它非常有效!
function getValue() {
//sets requirements as a json array
var myinputs = $("[id^=reqInput]").map(function(){
return this.value;
}).get();
sessionStorage.setItem("reqs", JSON.stringify(myinputs));
console.log(myinputs);
document.getElementById("mission").value = ""
for (var i = 0; i < myinputs.length; i++) {
var reqArray = myinputs[i];
document.getElementById("mission").value += reqArray + 'n';
};
};