我只有两个字段的简单表单
@Constraints.Required
public String name;
@Constraints.Required
public String slug;
呈现为:
@helper.form(routes.Add.create()) {
<input type="text" name="name" id="new-category-name"/>
<input type="text" name="slug" id="new-category-slug"/>
<input type="submit" value="save"/>
}
我有一个问题,因为当我第一次提交没有值的表单时,我看到错误,这是好的,但是在这个验证之后我再次提交我的表单(这次是带值)我再次看到我的错误
我有记录器request.body()和form.errors:
[debug] application - DefaultRequestBody(Some(Map(name -> ArrayBuffer(name), slug -> ArrayBuffer(slug))),None,None,None,None,None,false)
[debug] application - {name=[ValidationError(name,[error.required],[])], slug=[ValidationError(slug,[error.required],[])]}
寻求帮助
我的创作动作:
public Result create(){
categoryForm = categoryForm.bindFromRequest();
if(categoryForm.hasErrors()){
return ok(add.render(categoryForm));
} else {
Category category = new Category();
CategoryForm cf = categoryForm.get();
category.setName(cf.name);
category.setSlug(cf.slug);
categoryRepository.save(category);
return redirect(routes.Edit.edit(category.getId()));
}
}
答案 0 :(得分:0)
尝试使用相同的ID和名称:
<input type="text" id="slug" name="slug">
您应该考虑使用play 2 helpers。有了它们,您一定要创建正确的表单。
我警告你agianst使用字段名称是&#34; name&#34;或&#34; id&#34;。它会产生冲突。在我理解id为id的id生成jquery错误之前,我花了很多时间。