12.05.2015, 22:29
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Цитата:
|
Хорошо, пусть даже сам код изменится, но как сделать замену?
|
Проще по новой написать чем в таком коде что-то менять.
А зачем она там?
|
|
13.05.2015, 00:20
|
Интересующийся
|
|
Регистрация: 10.05.2015
Сообщений: 13
|
|
Сообщение от Rise
|
Проще по новой написать чем в таком коде что-то менять.
|
Полный код не мал и время как бы не позволяет переписать его, возможно вы подскажете все же каким способом можно будет заменить значение вара?
Или такого способа не существует?
Последний раз редактировалось dark_mc, 13.05.2015 в 00:23.
|
|
13.05.2015, 01:58
|
Аспирант
|
|
Регистрация: 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();
Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
|
|
13.05.2015, 12:25
|
Интересующийся
|
|
Регистрация: 10.05.2015
Сообщений: 13
|
|
Сообщение от kichSman
|
в вашем случае только костылями
Если диплом не зависит от количества символов, то вот как будет выглядеть ваш код (привожу концепцию для экономии вашего времени), вместо вакханалии и с реализацией того, о чем говорил @Rise
|
Как бы количество символов не зависит,зависит работоспособность кода)
Сообщение от kichSman
|
Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
|
Заменил я код Вашим примером, дописал все значения, подключил к калькулятору и ничего не вышло, думаю дело в связи между кодами, оно их не видит или не хочет видеть.
var form = document.querySelector('#form'),
calc = {
price: {
svet: "0.32300",
svetno: "63",
gazyes: "1.7880",
gazno: "43.13",
hotyes: "27.76",
hotno: "15.81",
coldyes: "31.00",
coldno: "38.25",
otop: "84.67",
musor: "26.00"
},
load:
function () {
var str = localStorage['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['calc_price'] = JSON.stringify(this.price);
return this;
}
};
form.addEventListener('change', function(){
for(var key in calc.price){
calc.price[key] = this[key];
}
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);
calc.load().set();
Связь с "электричеством":
<input id="sS" style="width: 120px; " type="text" onfocus="changeFlag(0);" onkeyup="CalcSum(1);" onkeypress="return calc_price"></td> </tr>
Сообщение от kichSman
|
Возможно есть ошибки, не проверял... Гранит науки должен грызться с трудом и потом ))
|
Само собой, но я сам учу этот язык и нет того кто мог бы подсказать что делать, вот форум это единственная штука где могут помочь. Вообще мне с трудом программирование дается, не знаю почему.
Последний раз редактировалось dark_mc, 13.05.2015 в 12:29.
|
|
13.05.2015, 12:56
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
dark_mc, а вы сами весь код калькулятора писали?
|
|
13.05.2015, 13:15
|
Аспирант
|
|
Регистрация: 16.10.2009
Сообщений: 69
|
|
dark_mc,
Я не зря указал, что форма должна быть формой, вот и первый урок. Нужно пользоваться BOM-ом полностью, это снизит количество ошибок и размер лишнего кода.
...кратко, инпуты должны быть внутри формы
|
|
13.05.2015, 13:58
|
Интересующийся
|
|
Регистрация: 10.05.2015
Сообщений: 13
|
|
Сообщение от Rise
|
dark_mc, а вы сами весь код калькулятора писали?
|
В интернете нашел код и переделал под себя.
Сообщение от kichSman
|
dark_mc,
Я не зря указал, что форма должна быть формой, вот и первый урок. Нужно пользоваться BOM-ом полностью, это снизит количество ошибок и размер лишнего кода.
...кратко, инпуты должны быть внутри формы
|
Спасибо,для меня это будет важным уроком!
У меня две формы:
1 - Там где пользователь сможет сам менять значения(ваш код).
2 - Форма калькулятора,там где идет сам подсчет.
Поместил я калькулятор в форму и ничего не происходит,нет подсчета, ничего не изменяет.
|
|
13.05.2015, 14:39
|
Аспирант
|
|
Регистрация: 16.10.2009
Сообщений: 69
|
|
dark_mc,
т.е. вы имели ввиду, форму ввода данных пользователем, и графическое оформление результата расчета, верно?
|
|
13.05.2015, 14:42
|
Интересующийся
|
|
Регистрация: 10.05.2015
Сообщений: 13
|
|
kichSman,
Да, именно это)
|
|
13.05.2015, 14:48
|
Аспирант
|
|
Регистрация: 16.10.2009
Сообщений: 69
|
|
Поддержу Rise в вопросе. Вы действительно хотите написать код, или просто скопипастить?
|
|
|
|