<input type="text" disabled>
<div id="buttons"></div>
const commands = '0123456789+-*/='.split('');
const el = {
input: document.querySelector('input'),
btns: document.getElementById('buttons'),
};
let buffer = [];
const update = cmd => {
if (!commands.includes(cmd)) return;
const last = buffer.pop();
if (!(commands.indexOf(last) >= 10 && commands.indexOf(cmd) >= 10)) {
buffer.push(last); // вернуть последний на место
}
buffer.push(cmd); // добавить введённую команду
el.input.value = buffer.join('');
};
commands.forEach(cmd => {
const btn = document.createElement('button');
btn.type = 'button';
btn.innerText = cmd;
btn.addEventListener('click', () => update(cmd));
el.btns.appendChild(btn);
});
document.addEventListener('keydown', event => {
const { key } = event;
if (commands.includes(key)) update(key);
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.