gpt4 book ai didi

java - 表单验证和 SuggestBox 选择之间的 GWT 冲突

转载 作者:行者123 更新时间:2023-11-30 06:42:26 25 4
gpt4 key购买 nike

我对 GWT SuggestBox 小部件有疑问。

我在表单的每个字段上都有一个处理程序,可以使用回车键提交它。不过我也想用回车键填充建议框。

因此我试图找到一种合适的方法:1.当我在建议框中选择一个项目(显示建议菜单)并按 Enter 键时,选择该项目2.当建议菜单不显示验证表单时

任何想法

最佳答案

当您查看 SuggestBox 构造函数时,您会发现 this :

public SuggestBox(SuggestOracle oracle,
ValueBoxBase<java.lang.String> box,
SuggestBox.SuggestionDisplay suggestDisplay)

oracle - supplies suggestions based upon the current contents of the text widget

box - the text widget

suggestDisplay - the class used to display suggestions

SuggestionDisplay 是您需要检查 isSuggestionListShowing() 的内容。

<小时/>

示例代码:

@UiField
FormPanel uiFormPanel;
@UiField
TextBox uiTextBox;
@UiField(provided = true)
SuggestBox uiSuggestBox;

public SubmitTest() {

// provided fields
MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
oracle.add("Cat");
oracle.add("Dog");
oracle.add("Horse");
oracle.add("Canary");

TextBox box = new TextBox();
final DefaultSuggestionDisplay suggestDisplay = new DefaultSuggestionDisplay();

uiSuggestBox = new SuggestBox(oracle, box, suggestDisplay);

initWidget(uiBinder.createAndBindUi(this));

uiFormPanel.addSubmitHandler(new SubmitHandler() {
@Override
public void onSubmit(SubmitEvent event) {
event.cancel();
Window.alert("Submit!");
}
});

uiTextBox.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
uiFormPanel.submit();
}
});

uiSuggestBox.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
if(!suggestDisplay.isSuggestionListShowing())
uiFormPanel.submit();
}
});
}

UiBinder:

<g:FormPanel ui:field="uiFormPanel">
<g:HTMLPanel>
<g:TextBox ui:field="uiTextBox" />
<g:SuggestBox ui:field="uiSuggestBox" />
</g:HTMLPanel>
</g:FormPanel>

关于java - 表单验证和 SuggestBox 选择之间的 GWT 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201734/

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