Показать сообщение отдельно
Старый 16.03.2010, 17:05   #11
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Помогите с JScript

Сообщение от Protey Посмотреть сообщение
Собственно познания сводятся к абсолютному нулю) Хочется два поля для ввода чисел, далее идёт расчёт по формуле

памажите кто чем можит

Вот накидал простенький калькулятор:


<SCRIPT LANGUAGE="JavaScript"

//Функция подсчета 
function calculate(expression)
{    
    
a=eval(document.calc.val1.value);
    
b=eval(document.calc.val2.value);
    
c=eval(document.calc.act.value b);

    
document.getElementById('result').innerHTML="";
    
document.getElementById('result').innerHTML=document.calc.act.value "="+c;    
}
</SCRIPT> 

<form name="calc" action="#"> 
    <input type="text" name="val1" size="10" value="1" />
    <select name="act" value="+">
        <option>+</option>
        <option>-</option>        
        <option>/</option>        
        <option>*</option>        
    </select>
    <input type="text" name="val2" size="10" value="1" />    

    <input type="button" value="Рассчитать" onClick="calculate()">   
</form>

<br />
<div id="result" style="border: 1px solid; margin: 5px; padding: 5px;"></div> 
Принцип работы такой:
Из элемента val1 заносим значение в переменную a
Из элемента val2 заносим значение в переменную b
Пропуская их чере ф-цию eval.
eval выпроняет любой код, который в него занесли.
Тоесть если написать eval("100+500") то на выходе получим 600
В переменную C я таким образом заношу ф-мулу для расчёта:
c=eval(a + document.calc.act.value + b);
Тоесть:
c = eval(значение из поля 1 + знак из второго поля + значение из поля 2)

document.getElementById('result').innerHTML=""; чистим div где хранится результат
document.getElementById('result').innerHTML=a + document.calc.act.value + b + "="+c; вносим в него наши вычисления и результат
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
Protey (16.03.2010), Reizel (16.05.2010)