Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.10.2016, 14:29
Интересующийся
Отправить личное сообщение для svinin_1989 Посмотреть профиль Найти все сообщения от svinin_1989
 
Регистрация: 03.10.2016
Сообщений: 11

Как повесить два действия на кнопку?
Есть калькулятор простенький. Хочу от кнопки = избавится. Чтоб выводил ответ по клику на цифры. Есть 2 функции, одна вводит цифорку в инпут, а вторая считает по кнопке =. Как бы их объединить? Или создать другую функцию. Я чайник совсем
function addChar(input, character) {
  	if(input.value == null || input.value == "0")
		input.value = character;
 	else
		input.value += character;
	 	 	}

function compute(form) {
 form.result.value = eval(form.display.value)
}


кнопочки так выглядят
<td align="center"  ><input type="button" value="2" onclick="addChar(this.form.display, &#39;2&#39;)"></td>
<td align="center"  ><input type="button" value="3" onclick="addChar(this.form.display, &#39;3&#39;)"></td>
<td align="center"  ><input type="button" value="4" onclick="addChar(this.form.display, &#39;4&#39;)"></td>


Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 06.10.2016, 14:39
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Нихера не понял, просто по ТЗ в теме.

element.addEventListener('click',foo);
element.addEventListener('input',bar);
element.addEventListener('keyup',baz);

сколько хочешь на один
Ответить с цитированием
  #3 (permalink)  
Старый 06.10.2016, 14:48
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,548

svinin_1989, это input.value == null всегда ложно можешь удалить...
Ответить с цитированием
  #4 (permalink)  
Старый 06.10.2016, 15:10
Интересующийся
Отправить личное сообщение для svinin_1989 Посмотреть профиль Найти все сообщения от svinin_1989
 
Регистрация: 03.10.2016
Сообщений: 11

Вот страничка с калькулятором, хочу убрать кнопку = вобще.
Чтоб решение появлялось во время набора цифр
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
 <font color="RED" size="18"> <B>КАЛЬКУЛЯТОР</B></font> <br/>
<form name="sci-calc">
<table table border="1"  >
<tbody> 
<tr>
<td align="center" style="background-color: red"  ><input type="button" value="1" onclick="addChar(this.form.display, &#39;1&#39;) "></td>
<td align="center"  ><input type="button" value="2" onclick="addChar(this.form.display, &#39;2&#39;)"></td>
<td align="center"  ><input type="button" value="3" onclick="addChar(this.form.display, &#39;3&#39;)"></td>
<td align="center"  ><input type="button" value="4" onclick="addChar(this.form.display, &#39;4&#39;)"></td>
<td align="center"  ><input type="button" value="5" onclick="addChar(this.form.display, &#39;5&#39;)"></td>
<td align="center"  ><input type="button" value="6" onclick="addChar(this.form.display, &#39;6&#39;)"></td>
<td align="center"><input type="button" value="7" onclick="addChar(this.form.display, &#39;7&#39;)"></td>
<td align="center"><input type="button" value="8" onclick="addChar(this.form.display, &#39;8&#39;)"></td>
<td align="center"><input type="button" value="9" onclick="addChar(this.form.display, &#39;9&#39;)"></td>
<td align="center"><input type="button" value="0" onclick="addChar(this.form.display, &#39;0&#39;)"></td>
<td align="center"><input type="button" value="." onclick="addChar(this.form.display, &#39;.&#39;)"></td>
</tr>
 


<tr>
<td colspan="6" align="center"><input name="display" value="0" size="55" maxlength="55"></td>
<td align="center"><input type="button" value="X" onclick="this.form.display.value = 0 "></td>
<td align="center"  ><input type="button" value="<" onclick="deleteChar(this.form.display)"></td>

<td align="center"><input type="button" value="=" name="enter" onclick="if (checkNum(this.form.display.value)) { compute(this.form) }"></td>

 <td colspan="3" align="center"><input name="result"   size="20" maxlength="20"></td>
<td align="center"><input type="button" value="X" onclick="this.form.result.value = 0 "></td>
<td align="center"  ><input type="button" value="<" onclick="deleteChar(this.form.result)"></td>
<td align="center"><input type="button" value="№" onclick="if (checkNum(this.form.display.value)) { sqrt(this.form) }"></td>
<td align="center"><input type="button" value="^2" onclick="if (checkNum(this.form.display.value)) { square(this.form) }"></td>
<td align="center"><input type="button" value="exp" onclick="if (checkNum(this.form.display.value)) { exp(this.form) }"></td>

</tr>


<tr>
 
<td align="center"><input type="button" value="*" onclick="addChar(this.form.display, &#39;*&#39;)"></td>
<td align="center"><input type="button" value="-" onclick="addChar(this.form.display, &#39;-&#39;)"></td>
  
<td align="center"><input type="button" value="/" onclick="addChar(this.form.display, &#39;/&#39;)"></td>
<td align="center"><input type="button" value="+/-" onclick="changeSign(this.form.display)"></td>
<td align="center"><input type="button" value="+" onclick="addChar(this.form.display, &#39;+&#39;)"></td>

 
<td align="center"><input type="button" value="(" onclick="addChar(this.form.display, &#39;(&#39;)"></td>
<td align="center"><input type="button" value=")" onclick="addChar(this.form.display, &#39;)&#39;)"></td>

<td align="center"><input type="button" value="ln" onclick="if (checkNum(this.form.display.value)) { ln(this.form) }"></td>
 
<td align="center"><input type="button" value="cos" onclick="if (checkNum(this.form.display.value)) { cos(this.form) }"></td>
<td align="center"><input type="button" value="sin" onclick="if (checkNum(this.form.display.value)) { sin(this.form) }"></td>
<td align="center"><input type="button" value="tan" onclick="if (checkNum(this.form.display.value)) { tan(this.form) }"></td>
 </tr>

</tbody></table>
</form>
    <script>
	
	
	element.addEventListener('click',compute(form));

function addChar(input, character) {
  
 
	if(input.value == null || input.value == "0")
		input.value = character;
 
	else
		input.value += character;
	 
	  
  
	}
 
 

function cos(form) {
	form.result.value = Math.cos(form.display.value);
}

function sin(form) {
	form.result.value = Math.sin(form.display.value);
}

function tan(form) {
	form.result.value = Math.tan(form.display.value);
}

function sqrt(form) {
	form.result.value = Math.sqrt(form.display.value);
}

function ln(form) {
	form.result.value = Math.log(form.display.value);
}

function exp(form) {
	form.result.value = Math.exp(form.display.value);
}

function deleteChar(input) {
	input.value = input.value.substring(0, input.value.length - 1)
}

function changeSign(input) {
	if(input.value.substring(0, 1) == "-")
		input.value = input.value.substring(1, input.value.length)
	else
		input.value = "-" + input.value
}

    function compute(form) {
 form.result.value = eval(form.display.value)
}
 

 
 

function square(form) {
	form.result.value = eval(form.display.value) * eval(form.display.value)
}

function checkNum(str) {
	for (var i = 0; i < str.length; i++) {
		var ch = str.substring(i, i+1)
		if (ch < "0" || ch > "9") {
			if (ch != "/" && ch != "*" && ch != "+" && ch != "-" && ch != "."
				&& ch != "(" && ch!= ")") {
				alert("invalid entry!")
				return false
				}
			}
		}
		return true
}

    </script>

  </body>
</html>



Вешаю на elem.onclick = function compute(form) {
form.result.value = eval(form.display.value)
}
не срабатывает
Ответить с цитированием
  #5 (permalink)  
Старый 10.10.2016, 05:56
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Капец. Я думал там производственный калькулятор, а он бытовой пишет. Скачай готовое и не мучайся.
Ответить с цитированием
  #6 (permalink)  
Старый 12.10.2016, 21:25
Интересующийся
Отправить личное сообщение для svinin_1989 Посмотреть профиль Найти все сообщения от svinin_1989
 
Регистрация: 03.10.2016
Сообщений: 11

Калькулятор специализированный это его шаблончик
мне нужно просто решение чтоб ответ появлялся в поле сам, без нажатия на =. кнопку = вобще удалить за ненадобностью
Ответить с цитированием
  #7 (permalink)  
Старый 12.10.2016, 21:53
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,105

form.display.addEventListener('input', compute);
И в каждой функции что меняет form.display.value добавить в конце
compute();
Что тут сложного?
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 14.10.2016, 12:54
Интересующийся
Отправить личное сообщение для svinin_1989 Посмотреть профиль Найти все сообщения от svinin_1989
 
Регистрация: 03.10.2016
Сообщений: 11

Мне сложно, я совсем не профи
Вот так нужно?

function addChar(input, character) {
  	if(input.value == null || input.value == "0")
		input.value = character;
 	else
		input.value += character;
 return form.display.addEventListener('input', compute);
	}


<td align="center"  ><input type="button" value="2" onclick="addChar(this.form.display, &#39;2&#39; compute();)"></td>


не срабатывает
Не менее важно, чем код, еще куда код вставить))
Ответить с цитированием
  #9 (permalink)  
Старый 14.10.2016, 15:41
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от svinin_1989
'2'
Это что такое? Там же есть value="2"
Ответить с цитированием
  #10 (permalink)  
Старый 14.10.2016, 15:44
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Короче, давай хтмл своего кулкулятора, который нужен, без абстракций, а то с таким уровнем боевой подготовки ты до победы не доживешь. )))
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать кнопку, для проигрывания музыки! Как? Foleyer Общие вопросы Javascript 13 11.04.2013 15:43
как прописать 2 действия в кнопке olegas Элементы интерфейса 1 05.01.2013 09:09
Повесить событие на кнопку, не меняя кода кнопки Weks Общие вопросы Javascript 8 11.11.2012 14:13
Как сделать кнопку в заголовке jQuery ui dialog flytracer jQuery 2 15.10.2011 16:06
Как нажать кнопку из адресной строки? nnst Элементы интерфейса 2 16.04.2010 12:56