我的登录页面(使用简单表单构建)默认添加html属性,用于Chrome无法识别的电子邮件输入上的浏览器验证,并显示“请匹配请求的格式。”
可能是Chrome错误(在firefox上运行),所以尝试使用简单的表单配置禁用浏览器验证
SimpleForm.html5
和SimpleForm.browser_validations
(默认为false),重新启动了rails但保持相同的输入:
<input autofocus="autofocus" class="string email optional form-control
input-xlarge" id="customer_email" maxlength="255"
name="customer[email]" pattern="\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z"
size="255" type="email">
还尝试在表单html: {novalidate: true}
上添加相同的输出
最后尝试添加input_filed :novalidate => true
,将html输出更改为:
<input autofocus="autofocus" class="string email optional form-control
input-xlarge" id="customer_email" maxlength="255"
name="customer[email]" pattern="\A[^@\s]+@([^@\s]+\.)+[^@\s]+\z"
size="255" type="email" novalidate="novalidate">
但是存在浏览器验证和Chrome错误。
有什么想法要解决吗?
PS:使用Bootstrap,登录表单来自Devise资源。
答案 0 :(得分:1)
您可以从导致问题的输入元素中删除pattern属性。您只需在输入字段中设置pattern: false
。
因此,您的输入字段可能如下所示:
<%= f.input_field :email, type: 'email', required: true, autofocus: true, class: 'form-control', pattern: false %>
(nil
不起作用;必须为false
。)
这在Rails 4中对我有用。