ruby-on-rails – 不允许用户在轨道上的ruby中提交带有空字段的表单

我开始使用 Ruby on Rails,我遇到了一些问题.我有一个包含3个字段的表单,这是代码

<%= form_for(resource,as: resource_name,url: registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <div class="field">
    <%= f.text_field :name,autofocus: true,placeholder: "Name" %>
  </div>

  <div class="field">
    <%= f.email_field :email,placeholder: "Email" %>
  </div>

  <div class="field">
    <%= f.number_field :age,placeholder: "Age" %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

在电子邮件字段中,当您编写非电子邮件并尝试提交的内容时,浏览器(chrome或firefox)会显示错误消息,指出该字段必须包含@.年龄字段也是如此,如果输入了一个字母,浏览器会显示一个错误,表示该字段只接受数字.

我想知道当你尝试提交时,如果任何字段为空,浏览器会显示一条消息.我知道如何在cakePHP中做到这一点,所以我想它也可以在ruby中完成.我已经验证了模型中的字段,将显示设置为true,但这仅适用于在您提交并再次重新加载页面显示消息.

解决方法

当你使用类似的东西:

f.email_field

它正在生成HTML5输入元素,告诉浏览器它必须是有效的电子邮件. HTML 5还有一个required =’required’选项,可用于防止空白字段.

您可以像这样添加它:

<div class="field">
  <%= f.email_field :email,placeholder: "Email",:required => 'required' %>
</div>

这将为表单元素添加required =’required’.请注意,在HTML5中,您只需要表单元素中所需的单词,但我知道在Rails中添加它的唯一方法是使用我在这里向您展示的选项表单.

这将阻止在没有该字段的情况下提交表单.这适用于当前版本的Firefox,Chrome,Opera和IE11. Safari将阻止提交但不表示原因.它什么都不做.

我会检查一下:http://blueashes.com/2013/web-development/html5-form-validation-fallback/

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...