如何从GWT SelectElement获取值?

如何从GWT SelectElement获取值?,gwt,Gwt,我试图使用该类的getValue()方法获取SelectElement的值。但是,当我调试并观察发生的情况时,该值始终为空。我能够确认SelectElement在调试时包含预期的HTML节点,并且其中包含的一个选项具有selected属性 下面是在DOM中查找select元素并尝试读取该值的代码: SelectElement e = (SelectElement) DOM.getElementById( "sel-" + transaction.getId().toString() ).cast

我试图使用该类的getValue()方法获取SelectElement的值。但是,当我调试并观察发生的情况时,该值始终为空。我能够确认SelectElement在调试时包含预期的HTML节点,并且其中包含的一个选项具有selected属性

下面是在DOM中查找select元素并尝试读取该值的代码:

SelectElement e = (SelectElement) DOM.getElementById( "sel-" + transaction.getId().toString() ).cast(); 
Boolean isAcknowledged = Enums.TransactionType.ACKNOWLEDGED.equals( e.getValue() );
如上所述,调用e.getValue()方法不会返回值,但是当我观察e中包含的内容时,我看到了预期的HTML节点,其中一个选项设置为选中

<select class="form-control" id="sel-88024">
   <option value="CONSUMED" selected="">Used</option>
   <option value="ACKNOWLEDGED">Received</option>
</select>

使用
收到

但是getValue()中从来没有值。任何想法都将不胜感激。

我认为问题与GWT无关。是否
Enums.TransactionType
是一个真正的Java枚举,您必须使用
Enums.TransactionType.ACKNOWLEDGED.name().equals(e.getValue())

我认为问题与GWT无关。是不是
Enums.TransactionType
是一个真正的Java枚举,您必须使用
Enums.TransactionType.ACKNOWLEDGED.name().equals(e.getValue())

您可能是对的,但遗憾的是,e.getValue()仍然不包含值:(我完全尝试了你的示例,效果很好。你的transactionid错了吗?嗯,DOM.getElementById()在HTML中查找节点并返回我所期望的内容,因此我不确定transactionId如何出错。如果出错,它将无法在HTML中找到元素,对吗?我想我可能已经发现了问题。返回为“e”的元素包含最初呈现的HTML,而不是HTML的当前状态。我必须使用对元素的引用,而不是元素本身。这意味着,它没有像我想象的那样附加到DOM。:|你可能是对的,但遗憾的是,e.getValue()仍然不包含值。:(我完全尝试了你的示例,效果很好。你的transactionid错了吗?嗯,DOM.getElementById()在HTML中查找节点并返回我所期望的内容,因此我不确定transactionId如何出错。如果出错,它将无法在HTML中找到元素,对吗?我想我可能已经发现了问题。返回为“e”的元素包含最初呈现的HTML,而不是HTML的当前状态。我必须使用对元素的引用,而不是元素本身。这意味着,它不像我想象的那样附加到DOM:|