forms - grails:仅对一个字段/属性进行自定义验证

标签 forms validation grails

我有一个“Thing”域类,其中每个Thing都有一个记录号(不是自动生成的ID),用户将使用该记录号来访问Thing:

class Thing {
  ...
  String recordNumber
  ...
}

有一种查找事物的形式,知道它的recordNumber:
<g:form action="search">
    <input name="recordNumber">
    <g:submitButton name="btn" value="go to this Thing"/>
</g:form>

我想以这种形式使用验证过程:如果未找到recordNumber(Thing.findByRecordNumber(recordNumber) == null),则输入字段必须变为红色,并且工具提示必须显示错误消息“找不到记录号”。

据我了解/阅读(我是grails新秀),这必须作为Thing类中的约束来编写:
static constraints = {
    recordNumber validator: { n -> Thing.findByRecordNumber(recordNumber) }
}

问题是:我没有这种形式要填充的所有“Thing”属性,只有recordNumber一个,所以我无法调用
new Thing(params).validate()

如何仅在一个字段而不是整个对象上调用验证?

最佳答案

如果这是您的主要问题,尽管我在那里看到其他人:

“如何仅在一个字段而不是整个对象上调用验证?”

您可以传递值列表进行验证,它将仅验证那些属性

new Thing(params).validate(["recordNumber"])

http://grails.org/doc/latest/ref/Domain%20Classes/validate.html

关于forms - grails:仅对一个字段/属性进行自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688499/

相关文章:

javascript - 为什么我无法在表单标签内移动垫子滑动切换?

ruby-on-rails - 验证 Rails 中多对多关联的唯一性

java - Struts验证框架: Validation Summary is blank

grails - Acegi/Spring Security Grails 插件看不到用户实例的更改

Grails 图像处理

forms - React-bootstrap 外部组件调用方法

html - 为什么我不能将所有 4 个元素都放在同一行中?

javascript - Rails 中自定义 AJAX 的最佳实践

PHP DateTime 信用卡到期

grails - 在 CloudFoundry 上启动 Grails 应用程序时为 "state is undetermined"