我已经开始在Grails中设计和实现一个博客主页,以便使用Grails开发和HTML进行练习。我对HTML4 / 5还不熟悉。
我的问题是我要禁用HTML5的表单验证,标准邮件是:“请填写此字段”如果该字段是必填字段而未填写,而是使用我自己的自定义错误文本,可以输入到文件i18n / messages.properties。
我已经阅读了关于如何使用novalidate=""
或autocomplete="off"
我在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个属性。
答案 0 :(得分:1)
您需要自定义renderEditor.template
此文件负责根据域类呈现表单字段。例如,我更改了isRequired()
方法:
private boolean isRequired() {
//!isOptional()
return false //always return false, not including the required='' in the field.
}