0

如果用户输入为空并且当用户单击输入键时它不会重定向到索引站点而是跳到下一个输入,Rails 是否有可能不保存条目?在这里我有一个简单的表格,所以也许有人可以告诉我他会怎么做!提前致谢!

%= form_for(@patient) do |f| %>


<div class="field">
<%= f.label :vorname %><br />
<%= f.text_field :vorname %>
</div>
<div class="field">
<%= f.label :nachnahme %><br />
<%= f.text_field :nachnahme %>
</div>
<div class="field">
<%= f.label :alter %><br />
<%= f.date_select :alter %>
</div>
<div class="field">
<%= f.label :ort %><br />
<%= f.text_field :ort %>
 </div>
 <div class="field">
<%= f.label :strasse %><br />
<%= f.text_field :strasse %>
</div>
<div class="field">
<%= f.label :telefon %><br />
<%= f.text_field :telefon %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
4

2 回答 2

0

如果您希望某些与数据库相关的列(表单由form_for助手生成)肯定具有价值,而不是在Patient模型中:

validates :vorname, :nachnahme, :presence=> true

此外,如果您愿意,您可以验证记录的长度、唯一性(使用 Rails 默认验证器)并编写自己的。

于 2013-06-15T13:41:42.117 回答
0

如果我理解......你想:

1 - 如果用户用鼠标单击创建按钮并且有空白信息,则阻止用户创建他的帐户?

2 - 如果他单击键盘的输入按钮并且有空白字段,他会跳转到下一个输入而不尝试保存表单?

对于第一个答案,您可以像这样在模型中使用验证:

# force user to fill all inputs in your form
validates :vorname, :nachnahme, :ort ...... ,  :presence=> true

对于第二个答案,您可以使用 javascript(我在这里使用 jquery)来防止“输入关键字”提交数据,并跳转到下一个输入:

$(document).ready(function(){

   var id_of_element_have_focus;
   var valid;

   $("form").submit(function(){

      id_of_element_have_focus = $("*:focus").attr("id");

      valid = true;

      $(":text, :file, :checkbox, select, textarea").each(function() {

         if($(this).val() === ""){

           valid = false;


            $("#" + id_of_element_have_focus).next().focus();

         }

      });


      return valid;

   });

});
于 2013-06-15T17:29:18.930 回答