jquery でキーボード イベントをシミュレートしようとしています。私が欲しいのは、ボタンをクリックしたときに、文字がテキストエリアに表示されるようにすることです。アクションを単純な追加ではなく、キーボード シミュレーションにする必要があります。私はウェブ上で可能なすべての解決策を試しましたが、うまくいきませんでした。
これが私のHTML/JS/Jqueryコードです:
<html>
<head></head>
<body>
<script type='text/javascript' src='jquery-1.9.1.min.js'></script>
<input type='text' id="input"></input>
<script type='text/javascript'>
function simulateKeyPress() {
document.getElementById("text").focus();
var e = $.Event("keypress");
e.which = 97;
$("input").trigger(e);
}
</script>
<br/>
<button id="button" onclick='simulateKeyPress()'>Press Me</button>
</body>
</html>
ご覧のとおり、ボタンをクリックすると、テキスト要素のみにフォーカスが移りますが、文字は表示されません。何かアイデアはありますか?
私は十分に明確ではなかったようです。別のサンプルを次に示します。MouseTrapライブラリを使用してキーボード イベントをキャプチャしています。これが私のコードです。
<html>
<header>
<title>test</title>
</header>
<script type='text/javascript' src='MouseTrap.js'></script>
<script type='text/javascript' src='jquery-1.9.1.min.js'></script>
<body>
<input type='text' class="mousetrap" id="input"></input>
<script type='text/javascript'>
Mousetrap.bind('4', function(){alert("you pressed 4" );});
function simulateKeyPress(character) {
document.getElementById("input").focus();
var input = $('#input');
input.val(input.val() + character);
}
</script>
<br/>
<button type="button" onclick='simulateKeyPress(4)'>Press Me</button>
</body>
</html>
このコードでは、キーボードで「4」を押すたびに警告ボックスが表示されます。ボタンをクリックすると、同じイベントが作成されるだけです。アイデア?