Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Input Field and suggestionItems

Hi experts,

I am trying to show a suggestion list when user types a username in an "Input"(sap.m.Input) field.

The filtering works for first username but for the next username it does not work.

The input field is defined as follows:

<Input

  id="productInput"

  type="Text"

  placeholder="Place Holder"

  liveChange="setSuggestion"

  suggestionItems="{username>/names}"

  suggest="handleSuggest"

  width="auto">

  <suggestionItems>

  <core:Item text="{username>name}" />

  </suggestionItems>

  </Input>

The functions are set as follows:

setSuggestion:function(oEvent){

  if(oEvent.getParameter("newValue").endsWith('@')){

  console.log("Suggest");

  lv_start_pos = oEvent.getSource().getFocusInfo().cursorPos - 1 ;

  this.getView().byId('productInput').setShowSuggestion(true);

  }else if(oEvent.getParameter("newValue").endsWith(' ')){

  console.log("Do not Suggest");

  lv_start_pos = undefined;

  this.getView().byId('productInput').setShowSuggestion(false);

  }

  },

  handleSuggest:function(oEvent){

  var sTerm = oEvent.getParameter("suggestValue").slice(lv_start_pos,oEvent.getSource().getFocusInfo().cursorPos);

  var aFilters = [];

  if (sTerm) {

  aFilters.push(new sap.ui.model.Filter("name", sap.ui.model.FilterOperator.StartsWith, sTerm));

  }

  oEvent.mParameters.suggestValue = sTerm;

  oEvent.getSource().getBinding("suggestionItems").filter(aFilters);

  }

Here whenever user types @ the username has to be shown.

Hence the username is extracted using the setSuggestion function.

The names are defined as:

{

"names":[{"name":"@skk","id":"skkk"},

         {"name":"@ajjj","id":"ajjj"}

]

}

In the input field when for the first time when user types the username the suggestion list is displayed.

For ex: On typing "@" the usernames in the json are displayed. Now on selecting one entry from the list, on continuing to type as follows:

           "@ajjj @"

          the list is not displayed further.

Is there any way I can achieve the list display again?

Thanks in advance.

Thanks and Regards,

Sarath

Tags:
Former Member

Helpful Answer

by
Not what you were looking for? View more on this topic or Ask a question