Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Первый элемент в input (https://javascript.ru/forum/misc/49499-pervyjj-ehlement-v-input.html)

ovesyan19 15.08.2014 17:13

Первый элемент в input
 
Когда пользователь нажимает на КНОПКУ 0 или просто с клавиатуры вводит 0 - не желательно чтобы такого рода ввод был невозможен - "035, "00005", так как это калькулятор. То же касается и операторов, например сейчас можно ввести два оператора друг за другом - "/*+".

<div class="calculator">
		<div class="screen">
			<form>
				<span class="display result">0</span>
			</form>
			<hr/>
			<form>
				<input type="text" class="display calculating" placeholder="0" onkeyup="return validateNumber(event)" />
			</form>
			<hr/>
		</div>

		<div class="keys">
			<span onclick="set('(')">(</span>
			<span onclick="set(')')">)</span>
			<span onclick="del()" class="delete">←</span>
			<span onclick="cl()" class="clear">C</span>
			<span onclick="set('7')">7</span>
			<span onclick="set('8')">8</span>
			<span onclick="set('9')">9</span>
			<span onclick="set('/')" class="operator">÷</span>
			<span onclick="set('4')">4</span>
			<span onclick="set('5')">5</span>
			<span onclick="set('6')">6</span>
			<span onclick="set('*')" class="operator">×</span>
			<span onclick="set('1')">1</span>
			<span onclick="set('2')">2</span>
			<span onclick="set('3')">3</span>
			<span onclick="set('-')" class="operator">-</span>
			<span onclick="set('0')" class="zero">0</span>
			<span onclick="set('.')">.</span>
			<span onclick="set('+')" class="operator">+</span>
		</div>
	</div>


var calc = document.querySelector(".calculating");
var result = document.querySelector(".result");

function set(oper){
	calc.value += oper;
  	result.innerHTML = eval(calc.value);
}

function del(){
	var length = calc.value.length;
	length--;
	calc.value = calc.value.substr(0, length) || 0;
	result.innerHTML = eval(calc.value);
}

function cl(e){
	e = '0';
	calc.value = e;
   	result.innerHTML = eval(calc.value);
}

function validateNumber(e){
	var unicode = e.which || e.keyCode;

	if (unicode != 8){
		if (unicode < 48 || unicode > 57){
			return false;
		}
	}
	result.innerHTML = eval(calc.value || 0);
}


Спасибо за помощь


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