Reply to this topicStart new topic
> HTML5 Калкулатор
kalvachev32
публикация 12.07.2013г. в 16:48ч.
Коментар: #1


Новак
*

Група: Потребители
Съобщения: 1
Дата на регистрация: 12.07.2013г.
Потребител # 23 353





Здравейте правя един калкулатор с HTML5 и java script, но искам, след като е сметнало първият резултат, полученото да се умножи с 249 примерно, а не ми се получава.

Също така не мога да разбера защо като сложа между форми редове на таблицата не смята.

Ако може да ми помогнете, ще ви бъда благодарен.

CODE
<script type='text/javascript'>
function updateOutput() {
//get form
var form = document.getElementById('calc');
//get output
var out = form.elements['z'];
var out2 = form.elements['n'];
//get euro

//get two numbers
var num1 = parseInt(form.elements['a'].value);
var num2 = parseInt(form.elements['b'].value);
var num3 = parseInt(form.elements['c'].value);
var num4 = 249;
//get operator
var operator = parseInt(form.elements['op'].value);
//set output depending on operator
switch(operator)
{
//add
case 0:
out.value = num1+num2+num3;
break;
default:
}
var operator2 = parseInt(form.elements['on'].value);
//umno
switch(operator)
{
case 1:
out.value = num1+num2+num3*num4;
break;
default:
}

}

</script>




CODE
<table width='900px'>
<tr>
<td width='200px'>
<b>Примерен проект №........</b>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td height='30px'>
Застроена площ на сграда
</td>
<td rowspan='5' width='30px'>

<input name='a' type='number' value='0' />
</br>
<div class='hide'><select name='op' onchange='updateOutput()'>
<option value='0'></option>
</select></div>
</br>
<input name='b' type='number' value='0' />
</br>
<input name='c' type='number' value='0' />
</br>
<output name='z' for='a b c'>0</output>

<div class='hide'><select name='on' onchange='updateOutput()'>
<option value='1'></option>
</select></div>
</td>
<td>
<b>м2</b>
</td>
</tr>
<tr>
<td height='25px'>
Покрита веранда
</td>
<td>
<b>м2</b>
</td>
</tr>
<tr>
<td height='25px'>
Покрита тераса
</td>
<td>
<b>м2</b>
</td>
</tr>
<tr>
<td height='25px'>
Обща площ
</td>
<td width='40px'>
<b>м2</b>
</td>
<td width='80px'>
x 249 <b>лева<b/>
</td>
<td width='70px' height:25px;>
=
<output name='n' for='a b c 249'>0</output>
</td>
</tr>
</table>


CODE
<style type='text/css'>
/*number inputs*/
input[type='number'] {
width:50px; height:25px;
text-align:center;
margin:3px;
float:left;}

/*select and equals elements*/
select, .equals {
margin:-20px;
float:left;}

/*output element*/
output {
display:block;
border:0px solid #fff;
min-width:25px; height:25px;
margin:3px; padding:3px;
text-align:center;
float:left; }

.hide {
visibility:hidden;

}


</style>
Go to the top of the page
 
+Quote Post
fakeuser
публикация 14.07.2013г. в 00:45ч.
Коментар: #2


Доктор - уроци
******

Група: Потребители
Съобщения: 836
Дата на регистрация: 15.11.2008г.
Потребител # 6 111




В първия код (javascript-a) виждам, че имаш грешка в изчисляването, пишеш
КОД
out.value = num1+num2+num3*num4;

ако желаеш цялата сума да бъде умножена по num4 (249 в случая) е нужно да се използват скоби, заради приоритетността на умножението като операция:
КОД
out.value = (num1+num2+num3)*num4;


Сега забелязвам, че има и грешка, и в двата switch-a правиш превключването по променливата operator. Въ втория трябва да използваш operator2.

Вторият въпрос не успях да го разбера напълно
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

 

RSS Олекотена Версия Сега е: 09:19 - 9.06.2026г.

Калдейта Ком ЕООД - © 2003-. Всички права запазени.