2013-03-05 2 views
1

Я хочу установить значение (число или строку) на флажок. Этот кодУстановите значение в GWT checkbox

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'.

+0

Что вы имеете в виду, установив значение (кроме вкл/выкл) к флажку? Вам нужен ярлык рядом с флажком? –

+0

Пользователь может видеть флажок с меткой 'Some label'. Но когда флажок установлен и форма отправлена, отправляется другое значение, которое представляет флажок, например. '3', но не 'Some label'. – LancerX

+0

Вы используете FormPanel? – SSR

ответ

2

Установите значение для checkBox в "someValue" используя setFormValue

checkBox.setFormValue("someValue"); 
+0

Зачем ставить старые ссылки из документов GWT 1.6? – SSR

+0

Извините, приходите снова ?? –

+0

Отредактировано сообщение, чтобы указать на GWT последние документы, а не GWT 1.6 – SSR

3

Свойство «значение = вкл/выкл» имеет некоторое предопределенное значение для флажка. Поэтому не используйте свойство «значение» для хранения чисел.

Если вы действительно хотите сохранить номера использовать свои собственные свойства, как -

checkBox.getElement().getFirstChildElement().setAttribute("customProperty", "3"); 

и получить доступ к использованию свойства -

checkBox.getElement().getFirstChildElement().getAttribute("customProperty"); 
Смежные вопросы