gpt4 book ai didi

java - AjaxFormComponentUpdatingBehavior onkeypress

转载 作者:行者123 更新时间:2023-12-01 11:35:12 25 4
gpt4 key购买 nike

我有一个项目列表,上面有一个输入字段。
输入字段是一个过滤器,它应该根据您在输入字段中键入的文本过滤列表。

例如:如果您输入“th”,它应该过滤列表,以便所有项目都以“th”开头。

为此,我使用 AjaxFormComponentUpadingBehavior("onkeypress")。
但这似乎并没有按照应有的方式进行。
当我输入某些内容时,它会清除该内容并将光标移至输入字段的第一个字母。

我尝试过 onkeyup 和 onkeydown,它们的行为方式都相同。
现在我正在对链接单击进行过滤,该过滤器有效,但我希望它像 onkeypress 一样无缝。

有办法实现这一点吗?我正在使用 wicket 1.4.x

这是代码:

        // Customer Filter input field
customerFilterTxt = new TextField<String>("customerFilterTxt", new PropertyModel<String>(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<CustomerGroupBean> filterList = new ArrayList<CustomerGroupBean>();
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);

最佳答案

您将输入字段添加到更新方法内的更新调用中。这指示 Wicket 替换输入字段,再次呈现文本字段。这就是光标跳到第一个位置的原因。为什么要在更新中添加文本字段?我不认为有任何必要。另外,您可能想使用事件“onkeyup”

关于java - AjaxFormComponentUpdatingBehavior onkeypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com