Catch KeyCode in AjaxBehaviorEvent of JSF 2

前端 未结 1 702
慢半拍i
慢半拍i 2020-12-06 20:19

I have a JSF ajax keyup event linked to an event listner in a backing bean.

The code in the JSF file is like below.



        
1条回答
  •  鱼传尺愫
    2020-12-06 20:47

    The AjaxBehaviorEvent doesn't contain any information about the JavaScript event object. You need to pass the desired information along yourself. This can be achieved by a hidden input field whose value is to be prefilled by JavaScript. For example,

    
        
    
    
    

    (please note that the id of the hidden field is included in execute so that it get submitted along on the ajax request, please also note that the binding is used to be able to dynamically obtain the generated client ID in document.getElementById() in order to set the key code value, you could alternatively also hardcode the client ID if it's fixed)

    with

    private String input;
    private int keyCode;
    
    public void listener() {
        switch (keyCode) {
            case 13:
                // Enter key was pressed.
                break;
            case 27:
                // Escape key was pressed.
                break;
            default:
                // Other key was pressed.
                break;
        }
    }
    

    You can find an overview of all valid keyCode values in the Mozilla DOM reference.

    0 讨论(0)
提交回复
热议问题