#javascript #jquery #html #css #keyboard-events
#javascript #jquery #HTML #css #клавиатура-события
Вопрос:
Я создаю калькулятор, и мне нужно добавлять числа, нажимая на кнопку div, вместо того, чтобы печатать на клавиатуре. Но это должно быть интегрировано с использованием клавиатуры. Теперь я знаю, как манипулировать строками для достижения этой цели, но размещение мигающего курсора в конце строки входного элемента ускользает от меня…
Есть ли способ вызвать событие клавиатуры напрямую через вызов функции для эмуляции нажатий клавиш, чтобы не было манипуляций со строками?
Разметка отображения ввода HTML…
<div id="displayWindow" align="right">
<input id="textInput" type="text" align-"right" value=""></input>
</div>
И здесь я анализирую входящие данные о событии мыши:
function keyData(ev){
var kee = ev.target.innerHTML;
var nums = ".1234567890";
if (nums.indexOf(kee)>=0){
//Append value to number input display
// THIS IS WHERE I NEED HELP ....
}
var mathOps = "- ÷×±";
if (mathOps.indexOf(kee)>=0){
//Prepare math operations
}
var chars = "MC M M- MR";
if (chars.indexOf(kee)>=0){
//MEMORY handling functions
}
if (kee=="="){
//Calculate
}
if (kee=="C"){
//CLEAR everything
}
}
Будем признательны за любую помощь…
TIA
DK
Комментарии:
1. indexOf возвращает -1 в случае, если kee не найден, то, что вы хотите использовать (я думаю), это
kee.indexOf(nums,kee) >= 0
2. @Oliboy50 … да, вы правы… Я превышал скорость… Спасибо!
3. Почему бы вам не настроить скрипку , чтобы показать нам, что происходит?
4. @adeneo Хммм, демонстрация ввода данных с клавиатуры не очень вдохновляет, поскольку для этого потребуется только элемент ввода. И часть ввода данных с клавиатуры — это то, что я пытаюсь выяснить…
5.
kee
предполагается, что это число (исходя из использованияindexOf(nums,kee)
, но в вашем коде мы видим этоif(kee=="=")
, так что же это? ваш код сбивает с толку то, что вы хотите сделать.
Ответ №1:
Это должно сработать!
function simulateKeyPress(character) {
$.event.trigger({ type : 'keypress', which : character.charCodeAt(0) });
}
DK