Rails中使用Simple Form时如何启用浏览器验证、禁用novalidate
Rails 中启用 Simple Form 浏览器原生表单验证的方法
Simple Form 默认会给生成的表单标签添加novalidate属性,主动禁用浏览器原生校验能力,要启用该功能可以按以下两种场景配置:
全局生效配置
如果需要项目中所有 Simple Form 生成的表单都默认启用浏览器原生校验,直接修改初始化配置文件即可:
- 打开配置文件
config/initializers/simple_form.rb - 找到浏览器校验相关的配置项,修改为启用状态:
# 原配置默认值为 false,改为 true 即可开启 config.browser_validations = true
- 保存文件后重启 Rails 服务,配置就会全局生效,后续生成的表单不会自动添加
novalidate属性。
单表单单独启用
如果不需要全局开启,只想给指定表单放开原生校验,不需要修改全局配置,直接在对应表单的simple_form_for调用中传入参数覆盖默认行为即可:
<%= simple_form_for @your_model, html: { novalidate: false } do |f| %> <!-- 表单业务内容 --> <% end %>
注意:启用浏览器原生校验后,表单元素上的
required、pattern、min/max等原生校验属性会直接触发浏览器默认的校验提示,如果你项目中已经接入了自定义JS校验、Simple Form配套的客户端校验逻辑,注意排查提示重复、逻辑冲突的问题。
内容的提问来源于stack exchange,提问作者Dennis Hackethal
相关产品推荐
相关产品推荐

