Цитата:
Цитата:
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, время: 12:24. |