2013-02-23 8 views
0
@(myForm: Form[FormObject]) 

@import helper._ 
@import helper.twitterBootstrap._ 

@main("Test") { 
    @form(routes.Application.save) { 
    @input(myForm("number"), '_label -> "Number") { (id, name, value, args) => 
     @if(value.isEmpty) { 
     <input type="text" name="@name" id="@id" value="@value"> 
     } else { 
     <input type="text" name="@name" id="@id" value="@value" disabled> 
     } 
    } 
    @input(myForm("startDate"), '_label -> "Start Date") { (id, name, value, args) => 
     <div class="input-append date datepicker" data-date="@value" data-date-format="dd-mm-yyyy"> 
     <input class="span2" size="16" type="text" value="@value"><span class="add-on"><i class="icon-calendar"></i></span> 
     </div> 
    } 
    <button type="submit" class="btn" title="Save"><i class="icon-ok"></i></button> 
    } 
} 

public class FormObject { 
public String number; 
public String startDate; 
} 
  1. Первый вопрос заключается в том, что, когда значение поля «номер» не пустой (и, следовательно, показано отключен) не связывается обратно FormObject, так я потерял это значение.
  2. Вторая проблема заключается в том, что поле 'startDate' не связывается с FormObject.Play Framework 2.0 шаблон выдает

    Я что-то упустил?

ответ

1

Во-первых: Это распространенная ошибка - disabled атрибут отключает поле даже от отправки, поэтому он даже не доступен, чтобы играть время запроса. Вместо этого используйте readonly. (more about disabled vs readonly)

@input(myForm("number"), '_label -> "Number") { (id, name, value, args) => 
     <input type="text" name="@name" id="@id" value="@value" @if(!value.isEmpty){ readonly="readonly" }> 
    } 

Возможно, вам нужно будет использовать некоторые CSS/JS для акцентирования, что поле только для чтения, в противном случае часто пользователи рассматривают это как ошибку (я не могу редактировать это поле и не знаете почему)

Второе: если это действительно String поле - я не знаю причины. Если это Date проблема вызвана изменением формата, игра не может автоматически разобрать. Перед сохранением/обновлением вам нужно будет также проанализировать его с данным форматом в вашем контроллере.

+0

Спасибо, не знал, что инвалид вызвал это. Поле даты - это просто строка, поэтому форматирование не должно быть проблемой. –

+0

В таком случае попробуйте связать его с запросом и использовать 'Logger.debug (field)' для отображения его в терминале. Я понятия не имею, почему простое поле 'String' не привязано:/ – biesior

+0

Я использовал отладчик для проверки запроса, но запрос не содержит поля 'startDate'. HTML выглядит так:

 Смежные вопросы

  • Нет связанных вопросов^_^