Playframework 2.0 Play framework 2.0模板问题 @(myForm:Form[FormObject]) @导入助手_ @导入helper.twitterBootstrap_ @主要(“测试”){ @表单(routes.Application.save){ @输入(myForm(“数字”),“_标签->数字”){(id、名称、值、参数)=> @if(value.isEmpty){ }否则{ } } @输入(myForm(“startDate”),“_标签->“开始日期”){(id、名称、值、参数)=> } } } 公共类FormObject{ 公共字符串号; 公共字符串起始日期; }

Playframework 2.0 Play framework 2.0模板问题 @(myForm:Form[FormObject]) @导入助手_ @导入helper.twitterBootstrap_ @主要(“测试”){ @表单(routes.Application.save){ @输入(myForm(“数字”),“_标签->数字”){(id、名称、值、参数)=> @if(value.isEmpty){ }否则{ } } @输入(myForm(“startDate”),“_标签->“开始日期”){(id、名称、值、参数)=> } } } 公共类FormObject{ 公共字符串号; 公共字符串起始日期; },playframework-2.0,scala-template,Playframework 2.0,Scala Template,第一个问题是,如果字段“number”的值不是 空(因此显示为禁用)不是绑定回FormObject, 所以我失去了这个值 第二个问题是字段“startDate”未绑定到FormObject 我错过什么了吗 第一:这是一个常见的错误-disabled属性禁用该字段,甚至不允许发送,因此它甚至不能在请求时间播放一段视频。改用只读。() @input(myForm(“number”),“\u label->“number”){(id,name,value,args)=> } 也许你需要使用一些C

第一个问题是,如果字段“number”的值不是 空(因此显示为禁用)不是绑定回FormObject, 所以我失去了这个值

  • 第二个问题是字段“startDate”未绑定到FormObject

    我错过什么了吗


  • 第一:这是一个常见的错误-
    disabled
    属性禁用该字段,甚至不允许发送,因此它甚至不能在请求时间播放一段视频。改用
    只读
    。()

    @input(myForm(“number”),“\u label->“number”){(id,name,value,args)=>
    }
    
    也许你需要使用一些CSS/JS来强调这个字段是只读的,否则用户通常会认为它是一个bug(我无法编辑这个字段,也不知道为什么)


    第二:如果它真的是
    String
    字段-我不知道原因。如果是
    日期
    问题是由格式更改引起的,则Play无法自动解析。在保存/更新之前,您还需要使用控制器中的给定格式对其进行解析。

    谢谢,我不知道是禁用导致的。日期字段只是一个字符串,因此格式不应成为问题。在这种情况下,请尝试从请求绑定它,并使用
    Logger.debug(field)
    在终端中显示它。我不知道为什么simple
    String
    字段没有绑定:/我使用了调试器来检查请求,但请求不包含“startDate”字段。HTML如下所示:
    @(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;
    }
    
        @input(myForm("number"), '_label -> "Number") { (id, name, value, args) =>
           <input type="text" name="@name" id="@id" value="@value" @if(!value.isEmpty){ readonly="readonly" }>
        }