Сообщение от dark_mc
|
заменить значение вара
|
в вашем случае только костылями
Сообщение от dark_mc
|
Полный код не мал и время как бы не позволяет переписать его
|
Если диплом не зависит от количества символов, то вот как будет выглядеть ваш код (привожу концепцию для экономии вашего времени), вместо вакханалии и с реализацией того, о чем говорил @Rise
<!--Форма - должна быть формой -->
<form id="form">
<input name="svet" value="0.32300">
<input name="otop" value="5">
<input name="musor" value="6">
</form>
var form = document.querySelector('#form'),
my_calc = {
price: {
svet: "0.32300",
otop: "84.67",
musor: "26.00"
},
load: function () {
var str = localStorage['my_calc_price'];
this.price = JSON.parse(str);
return this;
},
set: function(){
for(var key in this.price){
form.querySelector('input[name="'+key+'"]')
.value = this.price[key];
}
return this;
},
save: function () {
localStorage['my_calc_price'] = JSON.stringify(this.price);
return this;
}
};
form.addEventListener('change', function(){
for(var key in my_calc.price){
//тут проверка всей формы
//присвоение значений
my_calc.price[key] = this[key];
}
my_calc.save();
return false;
});
form.querySelector('input[name="svet"]')
.addEventListener('change', function(e){
//проверка одного из поля, например на числовое значение
if(!this.value || parseFloat(this.value) < 1){
e.preventDefault();
return false;
}
}, false);
my_calc.load().set();
Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))