我需要添加一个处理程序,当选择为CLICKED时将触发该处理程序,然后验证该值。当前功能正在从建议箱中记录整个值之前验证(通过模糊时的textInput),因此不会通过验证(当它应该时)。
以下是我在TextInput页面中实现suggestbox的地方:
public void onModuleLoad() {
SuggestBox box = new SuggestBox(createListOracle(),myTextBox());
box.addSelectionHandler(new SelectionHandler<Suggestion>() {
@Override
public void onSelection(SelectionEvent<Suggestion> event) {
Validate();
}
});
另一种解决方案可能是在选择建议箱时将焦点插入焦点,这对我来说也是如此。
问题是处理程序永远不会解雇。永远不会达到断点。
答案 0 :(得分:4)
然后看一下ValueBoxBase。
您将自己的实例传递给SuggestBox的构造函数
public SuggestBox(SuggestOracle oracle,ValueBoxBase box)
TextBox是ValueBoxBase的子类,它具有ClickListeners,因此您可以选择:
我试过这个样本,它可以正常工作
TextBox suggestTextBox = new TextBox();
suggestTextBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Window.alert("tada");
}
});
SuggestOracle oracle = new MultiWordSuggestOracle(" ,");
final SuggestBox nameField = new SuggestBox(oracle, suggestTextBox);
答案 1 :(得分:0)
您还可以使用高级建议框https://code.google.com/p/advanced-suggest-select-box/
可让您控制事件:您可以覆盖valueSelected()或valueTyped()并决定是否验证它。
lib的演示就在这里 http://1vu-widgets.appspot.com/IntoGwt.html