在Grails项目中禁用HTML5表单验证

时间:2013-08-13 14:05:52

标签: html5 forms validation grails

我已经开始在Grails中设计和实现一个博客主页,以便使用Grails开发和HTML进行练习。我对HTML4 / 5还不熟悉。

我的问题是我要禁用HTML5的表单验证,标准邮件是:“请填写此字段”如果该字段是必填字段而未填写,而是使用我自己的自定义错误文本,可以输入到文件i18n / messages.properties。

我已经阅读了关于如何使用novalidate=""autocomplete="off"

在普通HTML5中禁用表单验证的这两个问题

我在Grails项目中生成了脚手架模板,输入:install-templates

我的计划是在方法renderFieldForProperty()中更改_form.gsp以包含autocomplete="off"novalidate="",但两者都不起作用。

希望有人解决了这个问题并希望分享知识;)

编辑:来自scaffolded renderFieldForProperty()的代码:

private renderFieldForProperty(p, owningClass, prefix = "") {
    boolean hasHibernate = pluginManager?.hasGrailsPlugin('hibernate')
    boolean display = true
    boolean required = false
    if (hasHibernate) {
        cp = owningClass.constrainedProperties[p.name]
        display = (cp ? cp.display : true)
        required = (cp ? !(cp.propertyType in [boolean, Boolean]) && !cp.nullable && (cp.propertyType != String || !cp.blank) : false)
}
    if (display) { %>
<div class="fieldcontain \${hasErrors(bean: ${propertyName}, field: '${prefix}${p.name}', 'error')} ${required ? 'required' : ''}"> <-- At the end of this line i have tried the to attributes mentioned above
<label for="${prefix}${p.name}">
    <g:message code="${domainClass.propertyName}.${prefix}${p.name}.label" default="${p.naturalName}" />
    <% if (required) { %><span class="required-indicator">*</span><% } %>
</label>
${renderEditor(p)}
</div>
<%  }   } %>

如果您向右滚动,我已经写过我在帖子中提到的2个属性。

1 个答案:

答案 0 :(得分:1)

您需要自定义renderEditor.template此文件负责根据域类呈现表单字段。例如,我更改了isRequired()方法:

private boolean isRequired() {
  //!isOptional()
  return false //always return false, not including the required='' in the field.
}