我有一個項目列表,其上有一個輸入字段。
輸入字段是一個過濾器,它應該根據您輸入到輸入字段的文本過濾列表。AjaxFormComponentUpdatingBehavior onkeypress
例如: 如果您鍵入「th」,它應該過濾列表,以便所有項目都應以「th」開頭。
對於這個我使用AjaxFormComponentUpadingBehavior( 「onkeypress事件」)。
但是這似乎並沒有按照它們應該的方式工作。
當我輸入某些東西時,會清除它並將光標移到輸入字段的第一個字母。
我已經試過的onkeyup和onkeydown事件,所有這些行事方式相同。
現在我正在做一個鏈接點擊過濾器,但我希望它與onkeypress一樣無縫。
有沒有辦法做到這一點? 我使用的檢票口的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);
請張貼一些代碼。它在另一個瀏覽器中的行爲如何? – Imperative
我剛剛使用輸入字段和ajax行爲的代碼編輯了問題。 至於瀏覽器去,我已經在鉻(最新),Firefox(最新),和IE 11嘗試它,所有給了我相同的結果。 如果你碰巧有檢票1.4.x的,只是儘量創造與onkeypress事件的AJAX行爲,我敢肯定它會工作,我只是在闡述問題的方式。 –
嘗試'OnChangeAjaxBehavior',而不是''AjaxFormComponentUpdatingBehavior兩個 –