与法官 gem 一起验证 Rails 4 中的电子邮件字段。跨浏览器问题
Validate e-mail field in Rails 4 with Judge gem. Cross browser problems
我有简单的注册表。我已经设置了多个验证。除了
电子邮件格式验证。
模型中:
validates :name,:region, :age, :height,:phone_number,:weight, :email,
:description,
:presence => {:message => "empty value found"}
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
查看:
<%= f.email_field :email,:placeholder=> "E-pasts *", :validate => true%>
脚本:
function validate() {
judge.validate(document.getElementById('advertisement_email'), {
valid: function(element) {
element.style.border = '1px solid green';
},
invalid: function(element, messages) {
element.style.border = '1px solid red';
alert(messages.join(','));
}
});
}
通过提交按钮触发验证。
<div class="clickable8 ">
<%= link_to "PIEVIENOT", "#", :onclick => "validate()" %>
<span style="padding-left:132px;">PIEVIENOT</span>
</div>
问题:
1) 在 Chrome 中,即使电子邮件字段中没有任何内容,验证也会通过。
2) 在 Firefox 中,当我在该字段中写入时,验证会在同一时刻进行。
它通过有效的电子邮件,并通过无效的电子邮件失败。正合我意
问题:如何在两个浏览器中使用该单击按钮触发验证?
提前致谢。
检查您的 Javascript 控制台是否有错误。 Rails 正则表达式并不总是与 Javascript 正则表达式兼容,它可以在浏览器之间改变。
我有简单的注册表。我已经设置了多个验证。除了 电子邮件格式验证。
模型中:
validates :name,:region, :age, :height,:phone_number,:weight, :email,
:description,
:presence => {:message => "empty value found"}
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
查看:
<%= f.email_field :email,:placeholder=> "E-pasts *", :validate => true%>
脚本:
function validate() {
judge.validate(document.getElementById('advertisement_email'), {
valid: function(element) {
element.style.border = '1px solid green';
},
invalid: function(element, messages) {
element.style.border = '1px solid red';
alert(messages.join(','));
}
});
}
通过提交按钮触发验证。
<div class="clickable8 ">
<%= link_to "PIEVIENOT", "#", :onclick => "validate()" %>
<span style="padding-left:132px;">PIEVIENOT</span>
</div>
问题:
1) 在 Chrome 中,即使电子邮件字段中没有任何内容,验证也会通过。
2) 在 Firefox 中,当我在该字段中写入时,验证会在同一时刻进行。
它通过有效的电子邮件,并通过无效的电子邮件失败。正合我意
问题:如何在两个浏览器中使用该单击按钮触发验证?
提前致谢。
检查您的 Javascript 控制台是否有错误。 Rails 正则表达式并不总是与 Javascript 正则表达式兼容,它可以在浏览器之间改变。