我有一个GWT ListBox。我的验证代码询问ListBox的选定索引是否为-1(我的ListBox的默认状态)。如果我不触及ListBox,则getSelectedIndex()会按预期返回-1。 如果我将鼠标悬停在ListBox项目上但未单击其中一项(即单击外部),则getSelectedIndex()将返回非 - ( - 1)索引。我希望它返回-1,除非我单击ListBox项并且ListBox更新自身以反映该选择。
我该怎么办?
答案 0 :(得分:0)
由于浏览器确定所选元素是什么,而不是GWT,因此您将无法以一种很好的方式使用本机<select>
元素。换句话说,这就是<select>
的工作原理。
您必须创建自己的选择小部件(无论如何可能是出于造型原因而首选),或者在现有小部件旁边创建并创建一些内容。您可以向ListBox添加一个单击处理程序,并“手动”将所选索引设置为-1,但您必须确定用户是否取消其操作并在之后恢复选择。您必须从自定义代码中抑制选择事件,因为您可能不希望应用程序的其余部分对您的新-1 hack做出反应。啊!可能最容易以不同的方式处理这个问题。