Цитата:
Цитата:
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> Цитата:
|
dark_mc,
Я не зря указал, что форма должна быть формой, вот и первый урок. Нужно пользоваться BOM-ом полностью, это снизит количество ошибок и размер лишнего кода. ...кратко, инпуты должны быть внутри формы |
Цитата:
Цитата:
У меня две формы: 1 - Там где пользователь сможет сам менять значения(ваш код). 2 - Форма калькулятора,там где идет сам подсчет. Поместил я калькулятор в форму и ничего не происходит,нет подсчета, ничего не изменяет. |
dark_mc,
т.е. вы имели ввиду, форму ввода данных пользователем, и графическое оформление результата расчета, верно? |
kichSman,
Да, именно это) |
Поддержу Rise в вопросе. Вы действительно хотите написать код, или просто скопипастить?
|
Хорошо господа, я рад что вы мне помогали, сейчас буду писать все с нуля...
Думаю переписать сам код калькулятора, а тот код с заменой оставить, там в принципе все мне понятно. |
Вот сделал форму, написал инпуты для ввода значений пользователем(тарифы), инпуты для расчета, ну и итог.
Сделал связь, прошелся по коду, должно работать. Подскажите что поменять, что исправить. Почему оно не считает? <form name="test"> Тарифы: <br> <input id="S1" value="0.32300" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)"> <input id="S2" value="63" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)"> <br> Расчет: <br> <input id="sS" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)"> <input id="sE" type="text" onkeyup="Sum" onkeypress="return isNumberKey(event)"> <br> Итог: <br> <input id="sum" readonly="readonly" type="text" onkeyup="Sum"> </form> <script> function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 43 || charCode > 57)) return false; return true; } </script> <script> function Sum() { if () { document.getElementById('sS').value = sE * S1.toFixed(2); } else if () { document.getElementById('sS').value = sE * S1.toFixed(2); } else if () { var sS = document.getElementById('sS').value; if () { document.getElementById('sE').value = sS / S1.toFixed(2); } else if () { document.getElementById('sE').value = sS / S2.toFixed(2); } } var s = 0; var sum = 0; if (document.getElementById('sS').value != null) { s = document.getElementById('sS').value; } sum = parseFloat(Number(s)); document.getElementById('sum').value = parseFloat(sum).toFixed(2); } </script> |
dark_mc,
а почему в if-ах нету условий?) |
Вот, перепробовал все связи, ставил условие, не пашет и все, что я не правильно делаю в if? помогите пожалуйста.
<form name="test"> Тарифы: <br> <input id="S1" value="0.32300" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)"> <input id="S2" value="63" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)"> <br> Расчет: <br> <input id="sS" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)"> <input id="sE" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)"> <br> Итог: <br> <input id="sum" readonly="readonly" type="text" onkeyup="Summ" onkeypress="return isNumberKey(event)"> </form> <script> function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 43 || charCode > 57)) return false; return true; } </script> <script> function Summ(index) { if (test) { document.getElementById('sS').value = sE * S1.toFixed(2); } else if (test) { document.getElementById('sS').value = sE * S1.toFixed(2); } else if (index) { var sS = document.getElementById('sS').value; if (test) { document.getElementById('sE').value = sS / S1.toFixed(2); } else if (test) { document.getElementById('sE').value = sS / S2.toFixed(2); } } var s = 0; var sum = 0; if (document.getElementById('sS').value != null) { s = document.getElementById('sS').value; } sum = parseFloat(Number(s)); document.getElementById('sum').value = parseFloat(sum).toFixed(2); } </script> П.С. Я знаю что в иф не надо (test) писать. |
Часовой пояс GMT +3, время: 19:23. |