微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐