我在 f:field 标记中使用了以下属性,并且正在开发 1.3 版的 Fields Plugin for Grails。
<f:field property="someProperty" input-class="someCustomCssClass anotherCustomCssClass" />
如果要添加另一个自定义属性,可以使用前缀名称“input-”并在前缀后添加所需的名称。所有具有前缀“input-”的属性都作为其属性传递给小部件。
如果您已经自定义了提交的渲染,这是当您在 views/_fields/_field.gsp 中创建默认模板时,您可以将自己的属性传递给在模板文件中添加它们的字段。以下是我用于Twitter Bootstrap的模板。在这种情况下,我将表单控件类传递给该字段。
<div class="form-group ${invalid ? 'has-error has-feedback' : required && value ? 'has-success has-feedback' : ''}">
<label class="col-sm-3 control-label" for="${property}">${label}</label>
<div class="col-sm-9">
<f:input bean="${bean}" property="${property}" class="form-control"/>
<g:if test="${invalid}">
<span class="glyphicon glyphicon-remove form-control-feedback"></span>
<span class="help-block">${errors.join('<br>')}</span>
</g:if>
<g:else test="${invalid}">
<g:if test="${required && value}">
<span class="glyphicon glyphicon-ok form-control-feedback"></span>
</g:if>
</g:else>
</div>
</div>
如果要呈现默认字段,则必须删除该行:
<f:input bean="${bean}" property="${property}" class="form-control"/>
并将它们替换为
${raw(widget)}