Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.07.2016, 01:23
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Калькулятор на js
Всем привет! Делаю калькулятор на js. Не могу сделать кнопку процента (её функцию, обработать её), обращался на cyberforum там не помогли, последняя надежда на вас ребята, я уже перепробовал все что можно..
Вот код:
<!DOCTYPE html>
<html>
<head>
	<title>JavaScript</title>
	<meta charset="utf-8" />
	<script type="text/javascript" src="jquery-1.12.4.min.js"></script>
	<script type="text/javascript">
		function proverka(input) { 
			var value = input.value; 
			var rep = /[;":'a-zA-Zа-яА-Я]/; 
			if (rep.test(value)) { 
				value = value.replace(rep, ''); 
				input.value = value; 
			} 
		} 
		
		function persent(input) {
			var x =;
			var y =;
			var s = x*y/100;
		}
		
		function timer() {
			var s = Number(document.getElementById("timer").innerHTML);
			s++;
			document.getElementById("timer").innerHTML = s;
			setTimeout("timer()", 1000);
		}
	
		function date() {
			var date = new Date();
			var text = date.getFullYear();
			text += ".0" + Number(date.getMonth()+1);
			text += ".1" + date.getDay();
			text += "." + date.getHours();
			text += "." + date.getMinutes();
			text += "." + date.getSeconds();
			document.getElementById("niggus").innerHTML = text;
		}
	</script>
	<style>
		#calc * {font-size: 16px;}
		#calc table {border: solid 3px silver; border-spacing: 3px; background-color: #EEE; width: 319px;}
		#calc table td {border-spacing: 3px;}
		input.display {width: 300px; text-align: left; outline: none; color: #000; padding-left: 2px;}	
		input[type= button] {width: 40px; height: 30px; background-color: #EEE; outline: none;}
		input.doit {width: 304px; background-color: #6A5ACD;}
		input.dim{background-color: #A9A9A9;}
		input.gray{background-color: #C0C0C0;}
		input.silver{background-color: #d3d3d3;}
		input.blue{background-color: #d3d3d3;}
		.pp{margin-top: -15px; font-size: 22px; font-weight: bold; color: #00FF00;}
		.p{font-size: 17px; font-weight: bold; color: #00FF00;}
		#timer{font-size: 80px; color: #FF1493; position: relative;}
		#sekundomer {background-color: #000; width: 176px; height: 124px; border: 3px solid silver; text-align: center; margin-left: 419px; margin-top: -198px;}
		#date_nigga {margin-left: 720px; margin-top: -130px;}
	</style>
</head>
<body onload="timer(this), date(this)">
	<form name="calculator" id="calc">
		<table>
			<tr>
				<td>
					<input type="text" name="input" size="16" class="display" disabled placeholder="0" onkeyup="return proverka(this)" onsubmit="Checkform(this)" />
				</td>
			</tr>
			<tr>
				<td class="buttons">
					<input type="button" name="skobka" value="(" class="gray" Onclick="calc.input.value += '('"/>
					<input type="button" name="skobka" value=")" class="gray" Onclick="calc.input.value += ')'"/>
					<input type="button" name="percent" value="%" class="gray" Onclick="calc.input.value += '%' + persent(this)">
					<input type="button" name="clear" value="C" class="gray" OnClick="calc.input.value = ''"/>
					<input type="button" name="clear_one" value="CE" class="gray" Onclick="calc.input.value = input.value.substring(0, input.value.length - 1)"/>					
					<input type="button" name="sq" value="sq" class="dim" Onclick="" />
					<input type="button" name="asin" value="as" class="dim" Onclick="" />
					<br/>
					<input type="button" name="one" value="1" OnClick="calc.input.value += '1'"/>
					<input type="button" name="two" value="2" OnClick="calc.input.value += '2'"/>
					<input type="button" name="three" value="3" OnClick="calc.input.value += '3'"/>
					<input type="button" name="add" value="+" class="silver" OnClick="calc.input.value += '+'"/>
					<input type="button" name="sub" value="-" class="silver" OnClick="calc.input.value += '-'"/>
					<input type="button" name="exp" value="exp" class="dim" Onclick="">
					<input type="button" name="sqrt" value="sqr" class="dim" Onclick="">
					<br>
					<input type="button" name="four" value="4" OnClick="calc.input.value += '4'">
					<input type="button" name="five" value="5" OnClick="calc.input.value += '5'">
					<input type="button" name="six" value="6" OnClick="calc.input.value += '6'">
					<input type="button" name="mul" value="x" class="silver" OnClick="calc.input.value += '*'"/>
					<input type="button" name="div"  value="/" class="silver" OnClick="addChar(calc.input.value += '/')">
					<input type="button" name="sin" value="sin" class="dim" Onclick="">
					<input type="button" name="cos" value="cos" class="dim" Onclick="if (checkNum(this.calc.value)) { cos(this.calc) }">
					<br>
					<input type="button" name="seven" value="7" OnClick="calc.input.value += '7'">
					<input type="button" name="eight" value="8" OnClick="calc.input.value += '8'">
					<input type="button" name="nine" value="9" OnClick="calc.input.value += '9'">
					<input type="button" name="zero" value="0" OnClick="calc.input.value += '0'"/>
					<input type="button" name="tochka" value="." class="blue" Onclick="calc.input.value += '.'"/>
					<input type="button" name="tan" value="tan" class="dim" Onclick="">
					<input type="button" name="In" value="In" class="dim" Onclick="">
				</td>
			</tr>
			<tr>
				<td>
					<input type="button" name="doit" value="=" class="doit" OnClick="calc.input.value = eval(calc.input.value)"/>
				</td>
			</tr>
		</table>
	</form>
	<div id="sekundomer">
		<br/>
		<span id="timer">-1</span>
		<br/>
	</div>
	<div id="date_nigga">
		<p>Вы зашли на сайт:</p>
		<p id="niggus" ></p>
		<p>Год.Месяц.День.Час.Минута.Секунда</p>
	</div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 20.07.2016, 02:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Хан,
<!DOCTYPE html>
<html>
<head>
  <title>JavaScript</title>
  <meta charset="utf-8" />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script type="text/javascript">
    function proverka(input) {
      var value = input.value;
      var rep = /[;":'a-zA-Zа-яА-Я]/;
      if (rep.test(value)) {
        value = value.replace(rep, '');
        input.value = value;
      }
    }

    function persent(input) {
    var x = input.value.split("*");
    var y = x[0];
    x = x[1];
    var s = x * y / 100;
    input.value = s
   };

    function timer() {
      var s = Number(document.getElementById("timer").innerHTML);
      s++;
      document.getElementById("timer").innerHTML = s;
      setTimeout("timer()", 1000);
    }

    function date() {
      var date = new Date();
      var text = date.getFullYear();
      text += ".0" + Number(date.getMonth()+1);
      text += ".1" + date.getDay();
      text += "." + date.getHours();
      text += "." + date.getMinutes();
      text += "." + date.getSeconds();
      document.getElementById("niggus").innerHTML = text;
    }
  </script>
  <style>
    #calc * {font-size: 16px;}
    #calc table {border: solid 3px silver; border-spacing: 3px; background-color: #EEE; width: 319px;}
    #calc table td {border-spacing: 3px;}
    input.display {width: 300px; text-align: left; outline: none; color: #000; padding-left: 2px;}
    input[type= button] {width: 40px; height: 30px; background-color: #EEE; outline: none;}
    input.doit {width: 304px; background-color: #6A5ACD;}
    input.dim{background-color: #A9A9A9;}
    input.gray{background-color: #C0C0C0;}
    input.silver{background-color: #d3d3d3;}
    input.blue{background-color: #d3d3d3;}
    .pp{margin-top: -15px; font-size: 22px; font-weight: bold; color: #00FF00;}
    .p{font-size: 17px; font-weight: bold; color: #00FF00;}
    #timer{font-size: 80px; color: #FF1493; position: relative;}
    #sekundomer {background-color: #000; width: 176px; height: 124px; border: 3px solid silver; text-align: center; margin-left: 419px; margin-top: -198px;}
    #date_nigga {margin-left: 720px; margin-top: -130px;}
  </style>
</head>
<body onload="timer(this), date(this)">
  <form name="calculator" id="calc">
    <table>
      <tr>
        <td>
          <input type="text" name="input" size="16" class="display" disabled placeholder="0" onkeyup="return proverka(this)" onsubmit="Checkform(this)" />
        </td>
      </tr>
      <tr>
        <td class="buttons">
          <input type="button" name="skobka" value="(" class="gray" Onclick="calc.input.value += '('"/>
          <input type="button" name="skobka" value=")" class="gray" Onclick="calc.input.value += ')'"/>
          <input type="button" name="percent" value="%" class="gray" Onclick="persent(calc.input)">
          <input type="button" name="clear" value="C" class="gray" OnClick="calc.input.value = ''"/>
          <input type="button" name="clear_one" value="CE" class="gray" Onclick="calc.input.value = input.value.substring(0, input.value.length - 1)"/>
          <input type="button" name="sq" value="sq" class="dim" Onclick="" />
          <input type="button" name="asin" value="as" class="dim" Onclick="" />
          <br/>
          <input type="button" name="one" value="1" OnClick="calc.input.value += '1'"/>
          <input type="button" name="two" value="2" OnClick="calc.input.value += '2'"/>
          <input type="button" name="three" value="3" OnClick="calc.input.value += '3'"/>
          <input type="button" name="add" value="+" class="silver" OnClick="calc.input.value += '+'"/>
          <input type="button" name="sub" value="-" class="silver" OnClick="calc.input.value += '-'"/>
          <input type="button" name="exp" value="exp" class="dim" Onclick="">
          <input type="button" name="sqrt" value="sqr" class="dim" Onclick="">
          <br>
          <input type="button" name="four" value="4" OnClick="calc.input.value += '4'">
          <input type="button" name="five" value="5" OnClick="calc.input.value += '5'">
          <input type="button" name="six" value="6" OnClick="calc.input.value += '6'">
          <input type="button" name="mul" value="x" class="silver" OnClick="calc.input.value += '*'"/>
          <input type="button" name="div"  value="/" class="silver" OnClick="addChar(calc.input.value += '/')">
          <input type="button" name="sin" value="sin" class="dim" Onclick="">
          <input type="button" name="cos" value="cos" class="dim" Onclick="if (checkNum(this.calc.value)) { cos(this.calc) }">
          <br>
          <input type="button" name="seven" value="7" OnClick="calc.input.value += '7'">
          <input type="button" name="eight" value="8" OnClick="calc.input.value += '8'">
          <input type="button" name="nine" value="9" OnClick="calc.input.value += '9'">
          <input type="button" name="zero" value="0" OnClick="calc.input.value += '0'"/>
          <input type="button" name="tochka" value="." class="blue" Onclick="calc.input.value += '.'"/>
          <input type="button" name="tan" value="tan" class="dim" Onclick="">
          <input type="button" name="In" value="In" class="dim" Onclick="">
        </td>
      </tr>
      <tr>
        <td>
          <input type="button" name="doit" value="=" class="doit" OnClick="calc.input.value = eval(calc.input.value)"/>
        </td>
      </tr>
    </table>
  </form>
  <div id="sekundomer">
    <br/>
    <span id="timer">-1</span>
    <br/>
  </div>
  <div id="date_nigga">
    <p>Вы зашли на сайт:</p>
    <p id="niggus" ></p>
    <p>Год.Месяц.День.Час.Минута.Секунда</p>
  </div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 20.07.2016, 07:47
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Тут нужна рега типа такой

var npat = /\d+/g,
x=input.value.match(npat));
if(x.length>1)
// далее по тексту


Для плавающих поменять паттерн. Или просто забивать операнды по нажатию кнопок операций.
Ответить с цитированием
  #4 (permalink)  
Старый 20.07.2016, 17:22
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

NaN выводит..
Ответить с цитированием
  #5 (permalink)  
Старый 20.07.2016, 17:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Хан
NaN выводит..
80x20% => 16
Ответить с цитированием
  #6 (permalink)  
Старый 20.07.2016, 18:35
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Хан, NaN это уже сервис, а вам нужно было решение.
Ответить с цитированием
  #7 (permalink)  
Старый 20.07.2016, 19:05
Аспирант
Отправить личное сообщение для Хан Посмотреть профиль Найти все сообщения от Хан
 
Регистрация: 20.07.2016
Сообщений: 45

Сообщение от рони Посмотреть сообщение
80x20% => 16
Правда, работает, я просто напутал в одном моменте, ОГРОМНОЕ СПАСИБО!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS калькулятор, работа с отрицательными числами. TOPHOP Общие вопросы Javascript 1 24.06.2015 13:13
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Пример тестовых заданий на js junior elshaarawy Учебные материалы 3 26.03.2015 15:17
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Помогите найти калькулятор на js GennadiyZm Общие вопросы Javascript 1 29.07.2011 16:26