jQuery 「イベント」キーを押す・離す
keydown()とkeypress()は、共にキーの押下で発生するイベントです。両者が異なる点は、keydown()がe.whichの情報として「キーコード」を取得するのに対し、keypress()が入力された文字の「文字コード」を取得することです。たとえば、Aキーを押した場合、keydown()はキーコード「65」を返しますが、keypress()は文字コード「97」を返します。大文字の’A’を入力した場合、keydown()は’a’と同じく「65」、keypress()も「65」を返します。つまり、「どのキーが押されたか」を判断したい場合はkeydown()、「どの文字が入力されたか」を判断したい場合はkeypress()といった区別になります。keyup()はkeydown()の反対で、押されたキーを離したときに発生します。返されるコードも、keydown()と同様です。なお、Shiftなどの修飾キー押下時、keyup()及びkeydown()は発生しますが、keypress()は発生しません。日本語入力時に関しては、これらのイベント動作は統一されていません。
書式
$(対象要素).on('keydown', イベントハンドラ)
$(対象要素).on('keypress', イベントハンドラ)
$(対象要素).on('keyup', イベントハンドラ)
$(対象要素).trigger('keydown')
$(対象要素).keydown()
$(対象要素).keypress()
$(対象要素).keyup()
$('input').keydown(function(e){
alert(e.which);
});
$('input').keypress(function(e){
alert(e.which);
});
$('input').keyup(function(e){
alert(e.which);
});
$('input').keydown();
$('input').keypress();
$('input').keyup();
サンプル
キーを押す/離すでコードを返す
<body>
<div class="main">
<div class="header">
<h1>jQuery</h1>
</div>
<div class="content">
<form>
<br>
姓<br><input class="form-input" type="text" name="lastname"><br>
名<br><input class="form-input" type="text" name="firstname"><br>
メールアドレス<br><input class="form-input" type="text" name="email"><br>
電話番号<br>
<input class="form-input" type="text" name="phone"><br>
職業 <br>
<select multiple class="form-input" name="job">
<option value="">-------</option>
<option value="employee">会社印</option>
<option value="self-employed">自営業</option>
<option value="student">学生</option>
<option value="homemaker">主婦・主夫</option>
</select><br>
<button class="button" type="button" name="submit">送信</button>
</form>
<div class="desc"></div>
</div>
<div class="footer">
<hr>
<p class="copyright">2019 xxxx all rights reserved.</p>
</div>
</div>
<script>
$(document).ready(function(){
$('input').on('keypress', function(e) {
$('.desc').append('Key: ' + e.which + 'がPressされた。<br>');
});
$('input').on('keydown', function(e) {
$('.desc').append('Key: ' + e.which + 'がDownされた。<br>');
});
$('input').on('keyup', function(e) {
$('.desc').append('Key: ' + e.which + 'がUpされた。<br>');
});
});
</script>
</body>