我想设置值(数字或字符串)复选框。这段代码
final CheckBox checkBox = new CheckBox("Some label");
checkBox.getElement().setAttribute("value", i.toString());
checkBox.getElement().getStyle().setProperty("color", colorList.get(i));
checkBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
Object sender = event.getSource();
if (sender == checkBox) {
CheckBox checkBox = (CheckBox)event.getSource();
Window.alert(checkBox.getFormValue());
}
}
});
创建以下HTML:
<td align="left" style="vertical-align: top;">
<span class="gwt-CheckBox" value="3" style="color: rgb(128, 105, 155);">
<input id="gwt-uid-4" type="checkbox" value="on" tabindex="0">
<label for="gwt-uid-4">Some label</label>
</span>
</td>
将属性value
设置为span
,而不是input
。Window.alert(checkBox.getFormValue())
显示带有字符串'on'的消息,而不是'3'。
属性"value= on/off"对于复选框有一些预定义的含义。因此,不要使用属性"value"来存储数字。
如果你真的想存储数字,使用你自己的自定义属性,如-
checkBox.getElement().getFirstChildElement().setAttribute( "customProperty", "3" );
和访问属性使用-
checkBox.getElement().getFirstChildElement().getAttribute( "customProperty" );
使用setFormValue
设置checkBox
的值为"someValue"
checkBox.setFormValue("someValue");