Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   калькулятор на javascript (https://javascript.ru/forum/events/42120-kalkulyator-na-javascript.html)

vera0907 13.10.2013 23:02

калькулятор на javascript
 
помогите, пожалуйста, найти ошибку.
как сделать так, чтобы результат выводился в новом окне по onchange для выпадающего списка со знаками?

<html>
<head>
	<title>Калькулятор</title>
	<script>
	function first()
{
	d1=prompt("Введите первое число");
        f1=document.getElementById("first");
	f1.innerHTML=d1;
}


function rez()
{
    d1=document.getElementById("first").value;
	zn=document.getElementById("znak").value;
	d2=document.getElementById("second").value;
	flag=0;
	if (zn=="+")
	 {
		d11=parseFloat(d1);
		d22=parseFloat(d2);
		if ((isNaN(d11)==false)&(isNaN(d22)==false))
		 {
			rez=d11+d22;
			flag=1;
			
		 }
		else
		 {
			rez="Введены не числа";
			flag=1;
		 }
	 }
	 if (zn=="-")
	 {
		d11=parseFloat(d1);
		d22=parseFloat(d2);
		if ((isNaN(d11)==false)&(isNaN(d22)==false))
		 {
			rez=d11-d22;
			flag=1;
		 }
		else
		 {
			rez="Введены не числа";
			flag=1;
			
		 }
	 } 
	 if (zn=="*")
	 {
		d11=parseFloat(d1);
		d22=parseFloat(d2);
		if ((isNaN(d11)==false)&(isNaN(d22)==false))
		 {
			rez=d11*d22;
			flag=1;
			
		 }
		else
		 {
			rez="Введены не числа";
			flag=1;
			
		 }
	 } 
	 if (zn=="/")
	 {
		d11=parseFloat(d1);
		d22=parseFloat(d2);
		if ((isNaN(d11)==false)&(isNaN(d22)==false))
		 {
			rez=d11/d22;
			flag=1;
		
		 }
		else
		 {
			rez="Введены не числа";
			flag=1;
		 }
		 
	 } 
	 if (flag==1)
	  {
	    alert(rez.toPrecision(4));
		location.reload();
	  }


}
</script>
</head>
<body>
<form action="msg.html" name="form">
<span style="font-size: 100 px;"><font color=red><FONT size=5>Калькулятор</font></font></span><br><br>
<table border="5" cellpadding="5" cellspacing="5" width="30%" bordercolor="black" >
<tr><td width="20%" align="left">	
	<span><FONT size=4><font color=red>Введите первое число:<input id="first" type="text" size=15></font></font></span><br>
	<span><FONT size=4><font color=red>Знак арифметического действия:<select id="znak" onchange=" window.open(form.znak.options[form.znak.selectedIndex].value);return false;">"></font></font></span><br>
	
		<option value="+">+</option>
		<option value="-">-</option>  
		<option value="*">*</option>
		<option value="/">/</option>
	</select></br>
		
	<span><FONT size=4><font color=red>Введите второе число:<input id="second" type="text" size="15" ></font></font></span><br>
	<br>
	</td></tr>
	</table>
	</form>
    </body>
    </html>

cyber 14.10.2013 01:44

vera0907, обоже ну и ужас.
вот примитивный калькулятор
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    
<input id='calc' >  
<input id='calculation' type='button' value='вычислить'>    
<div id='res'></div>
 
    <script>

      (function () {
      
      var perms = ['+','-','/', '*' ],
          calc = document.getElementById('calc'),
          calc_res = document.getElementById('calculation'),
          res = document.getElementById('res');
      
       
      calc_res.onclick = function () {
        
       
       res.innerHTML = eval(calc.value);
        
      }
       
      calc.onkeypress = function(e) {

          var  val = String.fromCharCode(e.keyCode);
        
       if( !~Number(val) && !~perms.indexOf(val))
           return false;
        
};
        
        
        
      }());


    </script>

  </body>
</html>

Vuhrashka 24.03.2015 13:48

помогите найти ошибку, пожалуйста! калькулятор не считает пишет стоимость заливки пола 0 руб.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Калькулятор на JavaScript</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script type="text/javascript">
/*
* Функция подсчета стоимости заливки наливного пола
*/
function calc() {
//получаем ссылку на элемент Select (Тип пола)
var type_floor = document.getElementById("type_floor");
//получаем ссылку на элемент input (Площадь)
var count = document.getElementById("area");
//получаем ссылку на элемент span, в него будем писать стоимость заливки
var result = document.getElementById("result");

var price = 0;
price += parseInt(type_design.options[type_design.selectedIndex].value);
price += (is_html.checked == true) ? parseInt(is_html.value) : 0;
price = parseInt(count.value) * price;

result.innerHTML = price;
}

</script>
</head>
<body>
<b>Тип пола:</b><br/>
<select onchange="calc()" id="type_floor">
<option value="0">Выбрать</option>
<option value="4800">Декоративный 3D пол</option>
<option value="4800">Декоративный пол с фотоизображением</option>
<option value="4800">Декоративный пол с "дизайн - макетом"</option>
<option value="4500">Декоративные полы с узором</option>
<option value="2800">Одноцветный наливной пол</option>
<option value="1100">промышленные наливные полы</option>
</select><br/>
<br/>
Площадь: <input type="text" id="count" value="1" onchange="calc()" />
<div>Стоимость заливки пола: <span id="result">0</span> руб.</div>
</body>
</html>

рони 24.03.2015 14:00

Vuhrashka,
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Vuhrashka 24.03.2015 14:12

не получается у меня все равно:-E

рони 24.03.2015 14:38

Vuhrashka,
не получается нажать РЕД. и кнопку :-?

Vuhrashka 24.03.2015 14:56

я редактировала все равно пишет 0. не считает!!!(((

рони 24.03.2015 15:12

Vuhrashka,
вас просят сделать ваш код читаемым -- чтоб слева от кода были циферки :cray:


Часовой пояс GMT +3, время: 11:11.