![]() ![]() |
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> |
|
|
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. Вторият въпрос не успях да го разбера напълно |
|
|
![]() ![]() |