JavaScriptのonkeyup イベントハンドラについて

JavaScriptのonkeyup イベントハンドラについて

onkeyup イベントハンドラについて

JavaScriptにおける onkeyup イベントハンドラは、ユーザーがキーボードのキーを押した後にキーを離した際に発生するイベントを処理するための方法です。 これにより、リアルタイムでユーザーの入力を監視したり、特定のキー操作に応じた動作を実行したりすることができます。 本記事では、onkeyup イベントの概要や使用例を紹介します。

基本的な使い方

onkeyup は、HTML要素に直接記述するか、JavaScriptでイベントリスナーを設定することで使用できます。

HTMLでの設定例

<input type="text" onkeyup="alert('キーが離されました!')">

このコードでは、テキストボックスに文字を入力し、キーを離すたびにアラートが表示されます。

JavaScriptでの設定例

document.getElementById('input-box').onkeyup = function() {
    alert('キーが離されました!');
};

または、addEventListener を使用して以下のように設定できます。

document.getElementById('input-box').addEventListener('keyup', function() {
    alert('キーが離されました!');
});

フォーム入力のリアルタイム検証

onkeyup を使用して、ユーザーがフォームに入力している間にリアルタイムでデータを検証できます。

例: メールアドレスの検証

<input type="email" id="email-input" placeholder="メールアドレスを入力してください" onkeyup="validateEmail()">
<span id="email-feedback"></span>

<script>
function validateEmail() {
    const emailInput = document.getElementById('email-input').value;
    const feedback = document.getElementById('email-feedback');
    const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    if (emailPattern.test(emailInput)) {
        feedback.textContent = '有効なメールアドレスです';
    } else {
        feedback.textContent = '無効なメールアドレスです';
    }
}
</script>

検索ボックスに入力するたびにデータをフィルタリングする動的な検索機能を作ることも可能です。

例: リストのフィルタリング

<input type="text" id="search-box" placeholder="検索..." onkeyup="filterList()">
<ul id="item-list">
    <li>Apple</li>
    <li>Banana</li>
    <li>Cherry</li>
    <li>Date</li>
    <li>Elderberry</li>
</ul>

<script>
function filterList() {
    const searchBox = document.getElementById('search-box').value.toLowerCase();
    const items = document.querySelectorAll('#item-list li');
    items.forEach(item => {
        if (item.textContent.toLowerCase().includes(searchBox)) {
            item.style.display = '';
        } else {
            item.style.display = 'none';
        }
    });
}
</script>

特定のキーの検出

onkeyup イベントを利用して、特定のキーが押されたことを検出できます。

例: Enterキーの検出

<input type="text" id="key-detect" placeholder="キーを押してください" onkeyup="checkEnterKey(event)">

<script>
function checkEnterKey(event) {
    if (event.key === 'Enter') {
        alert('Enterキーが押されました');
    }
}
</script>

イベントオブジェクトの利用

onkeyup イベントでは、イベントオブジェクトを利用することで、キーコードやキー名などの詳細な情報を取得できます。

例: 入力されたキーの表示

<input type="text" id="key-display" placeholder="キーを押してください" onkeyup="showKey(event)">
<p id="key-output"></p>

<script>
function showKey(event) {
    const keyOutput = document.getElementById('key-output');
    keyOutput.textContent = `押されたキー: ${event.key}`;
}
</script>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です