日々精進

新しく学んだことを書き留めていきます

JSFでiOS Safariでテキストフィールドに文字入力後Goをタップした時にPOSTリクエストを送信させない

JSファイルに以下を書く。

window.my = {};
window.my.onkeypress = function() {
    var ENTER_KEY_CODE = 13;
    // ENTERが押下された場合、ソフトウェアキーボードを閉じる
    if (event.keyCode == ENTER_KEY_CODE) {
        document.activeElement.blur()
    }
    // ENTERが押下された時はfalseを返す。理由はPOSTリクエストを送信させないため。
    return event.keyCode != ENTER_KEY_CODE;
}

inputTextタグを以下のように修正すると、Goタップ時にPOSTリクエストは送信せずソフトウェアキーボードを閉じるようになる。

<h:inputText onkeypress="my.onkeypress()">

参考: