2017-02-09 11 views
1

jqueryのキーイベントを使用してテキストをテキスト入力要素に入れたいとします。私はそれが.val()または.html()関数で単純に実行できることを知っていますが、keyeventsを使ってテキストを入れたいという理由があります。以下は私のコードです:キーイベントとjqueryを使用して入力要素にテキストを配置

<!DOCTYPE html> 
<html> 
<body> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<p>In this example, the text field gets focus immediately after the document window has been loaded.</p> 

<textarea id="myText"> </textarea> 

<script> 

$(function() { 
    document.getElementById("myText").focus(); 
    $('#myText').focus().trigger({ type : 'keypress', which : 65 }); 
    $('#myText').trigger(jQuery.Event('keypress', { keyCode: 65 })); 

}); 


</script> 

</body> 
</html> 

私はそれを見つけて、jqueryを使ってイベントをトリガする2つの方法があることに気づきました。私は両方を試みたがどちらもうまくいかないようだ。

+0

$( "body")bind( 'keydown'、function(e){ if(event.keyCode == 13){// $( '#myText' ); } }) ' このようなものはありますか? – MarcosRJJunior

+0

いいえ、私はすでに私はそれを行う方法を知っていると言ったように。 –

答えて

0

あなたのキー押下イベントが発生しているようですが、それはイベントでしかないので、実際にフィールドに値を入力するとは思われません。あなたが持っている他のコードからのkeypressイベントで何かが起こることを期待しているなら、他にもいくつかの問題があります。

​​でデモすると、キー押しイベントが発生します。

は、新たなキー入力値と入力フィールドの値を変更するには、以下のコードを試してみてください。

$(function() { 
    $('#myText').trigger(jQuery.Event('keypress', { keyCode: 65 })).val($("#myText") 
    .val() + String.fromCharCode(65)); 
}); 
0

質問はover thereに答えています。ショートキーイベントはセキュリティ上の理由から実際の入力を変更するものではありませんが、回避策のお手伝いをするプラグイン「The $.fn.sendkeys Plugin」があります。