У меня есть список элементов, над которым есть поля ввода.
Поле ввода представляет собой фильтр, оно должно фильтровать список на основе текста, который вы вводите в поле ввода.
Например:
Если вы вводите «th», он должен фильтровать список так, чтобы все элементы начинались с «th».
Для этого я использую AjaxFormComponentUpadingBehavior("onkeypress").
Но, похоже, это работает не так, как должно.
Когда я что-то ввожу, это проясняется и курсор перемещается на первую букву поля ввода.
Я пробовал onkeyup и onkeydown, и все они действуют одинаково.
На данный момент я использую фильтр при щелчке ссылки, который работает, но я хочу, чтобы он был таким же плавным, как при нажатии клавиши.
Есть ли способ добиться этого?
Я использую wicket 1.4.x
Вот код:
// Customer Filter input field
customerFilterTxt = new TextField("customerFilterTxt", new PropertyModel(this, "slectedCustomerFilterStr"));
customerFilterTxt.setOutputMarkupPlaceholderTag(true);
customerListViewContainer.add(customerFilterTxt);
// Ajax behavior for customer group filter auto complete input filed
AjaxFormComponentUpdatingBehavior customerGroupFilterBehave = new AjaxFormComponentUpdatingBehavior("onkeypress") {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
List filterList = new ArrayList();
if(Util.hasValue(selectedCustomerGroupFilterStr)) {
String str = selectedCustomerGroupFilterStr.toUpperCase();
for(CustomerGroupBean group : custGroupList) {
if(group.getRightGroupName().toUpperCase().contains(str)) {
filterList.add(group);
}
}
custGroupListView.setList(filterList);
} else {
custGroupListView.setList(custGroupList);
}
target.addComponent(customerFilterTxt);
target.addComponent(custGroupListViewContainer);
}
};
customerGroupFilterTxt.add(customerGroupFilterBehave);
Подробнее здесь: https://stackoverflow.com/questions/300 ... onkeypress