验证失败后添加消息的最简单方法

时间:2015-04-22 15:12:28

标签: ruby-on-rails ruby validation

当我尝试将某些内容保存到数据库并且验证失败时,添加邮件(没有刷新页面)的最佳和最简单的方法是什么?

我可以使用flash消息吗?

1 个答案:

答案 0 :(得分:0)

由于您的模型中设置的验证是服务器端,因此在您提交表单之前不会收到Flash消息。正如其他人所建议的那样,可能有一种方法可以使用AJAX来执行此操作,但是您可以使用JavaScript来查看表单元素并创建自己的Flash消息以在客户端进行验证。

HTML5引入了新的输入属性,例如requiredpattern,您还可以使用它们来验证input元素中的值集。

EG <input type="text" name="firstname" required />

如果有人试图提交表单而不在firstname输入中输入值,则会显示一条错误消息。这里没有辛苦的工作,很好。

pattern属性将任何正则表达式作为其值,因此您可以根据需要具体使用该值。

EG <input type="text" name="firstname" pattern="^[A-Z]{1}[a-z]{1,20}$" />

这样只允许以大写字母开头的1-20个字母单词,如果没有,则会在提交时显示错误消息。 (没有服务器请求)。

我喜欢HTML 5的这一新增功能,是进行客户端验证的好方法。模型中的服务器端验证是最重要的,因为访问者在浏览器中关闭JavaScript或编辑页面源可以避免任何客户端验证。

您也可以使用CSS以不同的方式使用这些新属性设置输入框的样式。

EG input:required:invalid { border: 1px solid red; }

Found this helpful resource here ›