Показать сообщение отдельно
  #10 (permalink)  
Старый 13.05.2015, 01:58
Аспирант
Отправить личное сообщение для kichSman Посмотреть профиль Найти все сообщения от kichSman
 
Регистрация: 16.10.2009
Сообщений: 69

Сообщение от 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();


Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
Ответить с цитированием