Skip to Content

There are scenarios wherein the UI5 app should support keyboard shortcuts to perform some actions.

Here is a template that can be used as hook to write custom logic:

In your controller file, use the below method:

onInit : function() {
//after all the necessary code in init method
  this.setKeyboardShortcuts();
},

setKeyboardShortcuts: function(){
//here in this example, I have attached to 'document', you may attach to specific view or control
$(document).keydown($.proxy(function(evt) {
	switch(evt.keyCode){
		case 13: //enter key
// if enter key is pressed on checkbox control in ui5, default selection occurs, we need to undo this
                     var control = sap.ui.getCore().byId(evt.target.getAttribute('id'));
                     if (control && control.getMetadata().getName() == "sap.m.CheckBox" && control.getEnabled() && control.getEditable()) { //check if control is checkbox
                        //evt.preventDefault();
                        evt.stopImmediatePropagation();
                        control.setSelected(!control.getSelected());
                        control.fireSelect(new sap.ui.base.Event("customClick", control, {})); //checkbox SELECT event
                    }
//now call the actual event/method for the keyboard keypress
		   this.anyMethodThatShouldbeCalledUponEnterKeyHit();
		break;
			
                case 118: //F7 key
		     var control = this.byId("idPrevPageButton"); //or sap.ui.getCore().byId("idPrevPageButton")
	             if (control && control.getEnabled() && control.getEditable()) {
			control.firePress(); //button PRESS event
		     }
		     break;
                
//for other SHORTCUT cases: refer link1 - https://css-tricks.com/snippets/javascript/javascript-keycodes/   
                default: break;
	}, this));
},

 

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

  1. Michelle Crapo

    Thinking about ease of use in your design! Perfect. I was just looking at a blog about bag of tricks – I’m adding this one to mine.

    Michelle

     

    (0) 

Leave a Reply