我在使用 GWT 列表框时遇到问题。我有一种情况,用户从列表框中选择一个值,但如果他们更改相关字段中的数据,它可能会失效。要验证列表框,用户必须选择一个新值,或者通过再次选择相同的值来确认他们的旧选择。我不知道如何确定他们是否选择了相同的值,以便我可以重新设置 listBox 的样式以使其看起来经过验证。
valueChanged 处理程序仅检测是否选择了新值。clickHandler 和 focusHandler 触发太频繁,因为它们在用户未选择值时触发。有任何想法吗?
您可以通过以下方式改进 clickHandler:
ignoreClick = true;
lastSelection = -1 ;
....
listBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (!ignoreClick) {
lastSelection = listBox.getSelectedIndex();
}
ignoreClick = !ignoreClick;
}
});
我试过了,只有在您选择了一个项目时才会触发该事件。但是你应该重新考虑你的用户界面,就像上面所说的那样。