可能性の重複:
How do I replace a keystroke with jQuery?変更デフォルトのキーアクションのJavaScript
は、私はJavaScriptで押されたキーのデフォルトの文字を変更することができます方法はあります。誰かが "E"ボタンを押した場合と同様に、代わりにpを出力します。これはライブであり、テキストエリアに入力されるようです。とにかくjQueryなどでこれを行うには? Thnaks!
可能性の重複:
How do I replace a keystroke with jQuery?変更デフォルトのキーアクションのJavaScript
は、私はJavaScriptで押されたキーのデフォルトの文字を変更することができます方法はあります。誰かが "E"ボタンを押した場合と同様に、代わりにpを出力します。これはライブであり、テキストエリアに入力されるようです。とにかくjQueryなどでこれを行うには? Thnaks!
はここthis回答に基づいて、作業溶液の完全な例です:
jQuery.fn.extend({
insertAtCaret: function(myValue) {
return this.each(function(i) {
if (document.selection) {
//For browsers like Internet Explorer
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
}
else if (this.selectionStart || this.selectionStart == '0') {
//For browsers like Firefox and Webkit based
var startPos = this.selectionStart;
var endPos = this.selectionEnd;
var scrollTop = this.scrollTop;
this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
})
}
});
$(function() {
var ta = $('<textarea id="ta" style="width: 400px; height: 200px;"></textarea>').appendTo('body');
ta.keypress(function(e) {
if (e.which == 101) // e
{
e.preventDefault();
ta.insertAtCaret('P');
}
});
});
キーボードショートカットを追加するためのフレームワークを確認してください。それは自動的に文字は、ページの一部は、例えば、テキストフィールドをフォーカスを持っているかを把握する必要があります別の文字と出力に任意のキー入力を変換し、そして、それはだ変更されることはありませんもちろん
http://www.openjs.com/scripts/events/keyboard_shortcuts/
あなたが実際に入力したいと思っている文字を何かと入力してください。
@Bryan:この質問は、リンクの質問に非常に似ていますが、リンク1は何の真の解決策がありませんでした。この質問には簡単な解決策があります(私の答えは下記参照)。 –