Ich versuche eine Tastatur für eine Fremdsprache einzurichten. Ich benutze jQuery, um in fremde Zeichen gedrückte Schlüssel zu konvertieren. Ich verwende:Wie kann ich altKey + i, u, e, n mit jQuery erfassen?
- A - Z
- ALT + A - Z
- SHIFT + A - Z
ALT + SHIFT + A - Z
Mein Code für alle diese Werke außer diesen 4:
- ALT + I
- ALT + U
- ALT + E
- ALT + N
Es funktioniert in Firefox in Ordnung, aber in Chrome und Safari (ich bin mit einem mac) bekomme ich diese Akzentzeichen - ˆ
, ¨
, ´
, ˜
- anstelle des fremden Charakters, der in das Textfeld gehen soll.
Hier ist ein Teil des Codes:
function type(e, char, textArea) {
e.preventDefault();
var start = textArea[0].selectionStart;
var end = textArea[0].selectionEnd;
var len = textArea.val().length;
var newPos = start + char.length;
textArea.val(textArea.val().substring(0, start) + char + textArea.val().substring(end, len));
textArea[0].setSelectionRange(newPos, newPos);
}
$('textarea').keydown(function(e) {
var textArea = $(this);
if (e.which == 65 && e.altKey) {type(e, 'अ', textArea);return false;}
if (e.which == 68 && e.altKey) {type(e, 'ड', textArea);return false;}
if (e.which == 73 && e.altKey) {type(e, 'इ', textArea);return false;}
if (e.which == 74 && e.altKey) {type(e, 'ज्ञ', textArea);return false;}
});
Dies funktioniert, wenn e.which
65
ist, 68
und 74
, aber nicht 73
.
Wie kann ich das richtig machen?
FYI, 'return false' ist dasselbe wie' e.preventDefault() 'und' e.stopPropagation() 'zusammen. – VisioN
könntest du ein 'console.log' von' e.which' machen und prüfen, was es zeigt, wenn du [ALT] + [I] tust? Mit diesem [JSFiddle] (https://jsfiddle.net/z2borwez/) funktioniert es auf Chrome für mich (Windows 10) – Jordumus
@Jordumus: Auf Ihrem JSFiddle bekomme ich 18 + 229. Das ist der gleiche Code, den ich für [ ALT] + [u], [ALT] + [e], & [ALT] + [n]. – Travis