У меня есть два кода виртуальных ключевых досок для двух языков, кроме английского. Коды работают отлично, а значения нажатых клавиш, передаваемых в соответствующие входные текстовые поля, единственная проблема заключается в том, что функции keyup () и onclick () не работают до тех пор, пока не введите клавишу с ручной клавиатуры или нажата на мышь, выполненную в поле ввода. Будет признателен, если следующие коды будут изменены, чтобы включить в них функции keyup () и click (), поэтому не должно быть необходимости вручную касаться любого клавиши с ручной клавиатуры или мыши, нажатой в текстовое поле. Спасибо. < /p>
//First virtual keyboard:
const urduInput = document.getElementById('myInput');
const urduKeyboard = document.getElementById('urduKeyboard');
for (const key in urduPhoneticMap) {
const button = document.createElement('button');
button.className = 'keyboard-button';
button.textContent = urduPhoneticMap[key];
button.onclick = () => {
if (key === 'backspace') {
urduInput.value = urduInput.value.slice(0, -1);
} else {
urduInput.value += urduPhoneticMap[key];
}
urduInput.focus(); // Keep focus on the input field
};
urduKeyboard.appendChild(button);
}
// Here it is needed to add some code like ((document.getElementById("myInput").click();)) to make input box clicked automatically plus a similar code for Onkeyup function to generate key pressed automatically.
//Second virtual keyboard:
const arabicInput = document.getElementById('myInput2');
const keyboardContainer = document.getElementById('keyboardContainer');
const phoneticMap = {// keyboards buttons
// Create keyboard keys
function createKeyboard() {
for (const phonetic in phoneticMap) {
const keyElement = document.createElement('div');
keyElement.classList.add('key');
keyElement.textContent = phoneticMap[phonetic];
keyElement.dataset.phonetic = phonetic; // Store phonetic value
keyboardContainer.appendChild(keyElement);
}
}
// Handle key clicks
keyboardContainer.addEventListener('click', (event) => {
const target = event.target;
if (target.classList.contains('key')) {
const phoneticKey = target.dataset.phonetic;
if (phoneticKey === 'backspace') {
arabicInput.value = arabicInput.value.slice(0, -1);
} else if (phoneticKey === 'enter') {
arabicInput.value += '\n';
} else {
arabicInput.value += phoneticMap[phoneticKey];
}
arabicInput.focus(); // Keep focus on the input field
}
});
// Initialize the keyboard
createKeyboard();
// Here it is needed to add some code like ((document.getElementById("myInput").click();)) to make input box clicked automatically plus a similar code for Onkeyup function to generate key pressed automatically.
Подробнее здесь: https://stackoverflow.com/questions/797 ... -keyboards