我已经开始在 Grails 中设计和实现一个博客主页,以练习 Grails 开发和 HTML。我还没有 HTML4/5 的经验。
我的问题是我想禁用 HTML5 的表单验证,标准消息是:“请填写此字段”如果该字段是必填的但未填写,而是使用我自己的自定义错误文本,可以输入到文件 i18n/消息属性。
我已经阅读了这两个关于如何在纯 HTML5 中使用novalidate=""
或禁用表单验证的问题autocomplete="off"
我已经在我的 Grails 项目中生成了脚手架模板,方法是键入:install-templates
。
我的计划是更改它_form.gsp
以包含autocomplete="off"
或包含novalidate=""
在方法 renderFieldForProperty() 中,但两者都不起作用。
希望有人解决了这个问题并希望分享知识;)
编辑:来自脚手架的 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 个属性的地方。