Первый элемент в 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, время: 00:14. |