Функция берет данные из формы, состоящей из 2 строк метод оплаты и количество денег и сохраняет в локал сторейдж
function Savetransaction() {
let amount = parseFloat(document.getElementById('amount').value,10);
let paymentMethodID = document.getElementById('paymentMethod').value;
console.log("Amount : " +amount+ ` , idPayment : ${paymentMethodID}`);
if (localStorage.getItem('transaction') !== null) {
let transactionListString = localStorage.getItem('transaction');
let transactionList = JSON.parse(transactionListString);
}
else{
let transactionList = new Array();
}
let newTransactionString = `{"transactionAmount": "${amoubt}", "idPayment" : "${paymentMethodID}"}`;
let newTransactionJSON = JSON.parse(newTransactionString);
console.log(newTransactionString);
console.log(newTransactionJSON);
transactionList.push(newTransactionJSON);
localStorage.setItem("transaction", JSON.stringify(transactionList));
}
JavaScript
LocalStorage в js
Проблема здесь
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/block#правила_области_видимости_блока (пункт Правила области видимости блока)
Вот более упрощенный вариант:
if (localStorage.getItem('transaction') !== null) {
let transactionListString = localStorage.getItem('transaction');
let transactionList = JSON.parse(transactionListString);
}
else {
let transactionList = new Array();
}
Все переменные объявленные внутри блока остаются внутри блока. Если надо чтобы они были видны за пределами 'if', объяви их за пределами if.https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/block#правила_области_видимости_блока (пункт Правила области видимости блока)
Вот более упрощенный вариант:
function Savetransaction() {
const amount = parseFloat(document.getElementById('amount').value, 10);
const paymentMethodID = document.getElementById('paymentMethod').value;
console.log("Amount : " + amount + ` , idPayment : ${paymentMethodID}`);
const transactionListString = localStorage.getItem('transaction');
const transactionList = transactionListString ? JSON.parse(transactionListString) : [];
const newTransaction = {transactionAmount: amount, idPayment: paymentMethodID};
console.log(newTransaction);
transactionList.push(newTransaction);
localStorage.setItem("transaction", JSON.stringify(transactionList));
}
На строке с newTransactionString у тебя опечатка + убрано лишнее действие с обработкой строки json. Преобразовать строку в объект и потом обратно в строку в данном случае излишне. :) function Savetransaction() {
// Переменная не была объявлена в области видимости функции
let transactionList = '';
let amount = parseFloat(document.getElementById('amount').value,10);
let paymentMethodID = document.getElementById('paymentMethod').value;
console.log("Amount : " +amount+ ` , idPayment : ${paymentMethodID}`);
if (localStorage.getItem('transaction') !== null) {
let transactionListString = localStorage.getItem('transaction');
transactionList = JSON.parse(transactionListString);
}
else{
transactionList = new Array();
}
// Была допущена ошибка в переменной amount
let newTransactionString = `{"transactionAmount": ${amount}, "idPayment" : ${paymentMethodID}}`;
let newTransactionJSON = JSON.parse(newTransactionString);
console.log(newTransactionString);
console.log(newTransactionJSON);
transactionList.push(newTransactionJSON);
localStorage.setItem("transaction", JSON.stringify(transactionList));
}
Нажми F12, введи в консоль localStorage и посмотри, что в нём сохранено.
Сергей Сорокин
В этом и едло, что ничего не появилось
Да
Сергей Сорокин
Но ничего не появляется, целый день пытаюсь исправить
Похожие вопросы
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?
- Почему jQuery методы популярнее js методов при общении с ДоМ?
- ПОЧЕМУ JS ТАКОЙ НЕПОНЯТНЫЙ???
- вопрос по JS. " простой ()";
- Порядок изучени JavaScripta. Путь к Node.js. Нужен совет по обучению от программистов
- Почему иногда в вакансиях пишут "знания JavaScript или JQuery"? По сути JQuery - лишь библиотека для JS.
- почему так много js файлов?