我希望你的日子表现不错,我试图通过将forStorage解析为带有'for'循环的JSON来保存多个输入但是它没有保存,CONSOLE中的错误:
"Uncaught SyntaxError: Unexpected token J in JSON at position 0
at JSON.parse (<anonymous>)
at HTMLDocument.<anonymous>"
第32行的代码:
<script>
document.addEventListener('DOMContentLoaded', function() {
//line 32 bellow
var values = JSON.parse(localStorage.getItem('emploi') || '{}');
// parse stored JSON if it exists otherwise an empty object
var inputs = document.getElementsByName('emploi');
for (let i = 0; i < 3; i++) {
var x = inputs[i];
x.value = values[i] || '';// stored value if it exists or empty string
x.onchange = function() {
// assign value to the object above
values[i] = this.value;
// store updated version of object
localStorage.setItem('emploi', JSON.stringify(values));
}
}
});
</script>
<!--Html-->
<!--SALE-->
<input type="text" name='emploi' placeholder='Sale'>
<!--les prof-->
<input type="text" name='emploi' placeholder='Professeur'>
<!--les classes-->
<input type="text" name='emploi' placeholder='Class'>
答案 0 :(得分:0)
您正在解析的localStorage内容不是有效的JSON,而是以“J”开头的字符串。
要将localStorage内容安全地解析为JSON并使用空对象作为回退,请将解析包装在try-catch块中:
var values = {};
try {
values = JSON.parse(localStorage.getItem('emploi') || '{}');
} catch (ex) {
console.warn('LocalStorage did not contain valid json, continuing with empty values object: ', ex);
}