2015-08-09 75 views
1

我使用这样的代码来创建/编辑联系人表单。我需要从模型中获取一些值,如果我正在编辑表单,并且什么也不做,如果我正在创建新的。以脚本形式播放缩放

@(fieldForm: Form[MyModel]) 
@import helper._ 

@main("Create new") { 
    @form(routes.Actions.createFieldHolder()) { 

    <html> 
     <head> 
      <script> 
       function funcOnLoadSubForm(){ 

        @* 
        if(@fieldForm.get==null) { 
        ... 
        } 
        *@ 
       OR 
        @* 
        if(@fieldForm.get.equals(null)) { 
        ... 
        } 
        *@ 
       OR 
        @* 
        if(@fieldForm.get.eq(null)) { 
        ... 
        } 
        *@ 
       } 
      </script> 
    </head> 
    <body onload="funcOnLoadSubForm()"> 

    </body 
} 

我总是得到一个错误:IllegalStateException:没有值。

回答

1

API Documentation指出getreturn the concrete value, if the submission was a success.。由于您正在创建新模型,因此您尚未提交任何意味着数据为空的数据,并且get将引发异常。

您可以通过foreachfieldForm.value解决此问题。例如:

<script> 
    function funcOnLoadSubForm(){ 
     @fieldForm.value.foreach { data => 
      // Do something here if fieldForm was submitted 
     } 
    } 
</script> 
+0

我不明白,为什么它更新进入此代码块。我填写它:'MyModel row = MyModel.finder.byId(id); 表格 rowForm = Form.form(MyModel.class).fill(row);' – user3807830