作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个文本框和一个建议框。我将值更改和键入处理程序附加到文本框,这样无论用户键入(或粘贴)到文本框中的内容都会在建议框中回显。我可以通过在每次值更改和键入事件时调用 showSuggestionList 来让建议框显示建议列表。
现在,如何让建议框自动选择建议列表中的第一项?
我尝试过的一种方法是以编程方式模拟按键,即
suggestBox.setFocus(true);
NativeEvent enterEvent = Document.get().createKeyPressEvent(false, false, false, false, KeyCodes.KEY_ENTER);
DomEvent.fireNativeEvent(enterEvent, suggestBox);
textBox.setFocus(true);
这根本行不通。未模拟回车键。另一种可能的解决方案是扩展 SuggestionBox.SuggestionDisplay,但我不太确定该怎么做。任何指点表示赞赏。
更新:我仍在努力解决这个问题并尝试各种方法。
在这里,我尝试通过子类化 DefaultSuggestionDisplay 并覆盖 getCurrentSelection() 来实现我自己的 SuggestionDisplay,以便从我的类(class)访问。这也不管用。返回 Null。
private class CustomSuggestionDisplay extends DefaultSuggestionDisplay {
@Override
protected Suggestion getCurrentSelection() {
return super.getCurrentSelection();
}
}
suggestBox.setAutoSelectEnabled(true);
textBox.addKeyUpHandler(new KeyUpHandler() {
public void onKeyUp(KeyUpEvent event) {
suggestBox.setValue(textBox.getText(), true);
suggestBox.showSuggestionList();
if (suggestBox.isSuggestionListShowing()) {
String s = ((CustomSuggestionDisplay) suggestBox.getSuggestionDisplay()).getCurrentSelection().getDisplayString();
Window.alert(s);
}
}
});
在这里,我尝试将值更改处理程序附加到 SuggestBox,并将事件类型转换为 SuggestOracle.Suggestion。同样,返回 null。
suggestBox.addValueChangeHandler(new ValueChangeHandler<String>() {
public void onValueChange(ValueChangeEvent<String> event) {
String s = ((SuggestOracle.Suggestion) event).getDisplayString();
Window.alert(s);
}
});
最佳答案
使用suggesBox.setAutoSelectEnabled(true)
Here有关 GWT SuggestBox 的更多信息:
关于java - GWT SuggestBox : How do I force the SuggestBox to select the first item in the suggestion list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776615/
我是一名优秀的程序员,十分优秀!