Rails表单字段验证和单击处理程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails表单字段验证和单击处理程序相关的知识,希望对你有一定的参考价值。

我有一个form_tag,其中包含一些必填字段,如下所示

<% form_tag url do %>
  <%= text_field_tag "user[name]", user[:name], :required => true %>
   <%= submit_tag 'Continue', :class => 'submit_button' %>
<% end %>

当我提交表格时,通过抛出错误表示该字段是强制性的,它可以正常工作。但是当我使用click事件绑定提交按钮时,所需的=> true不再起作用。例如。

$(".submit_button").bind("click",function(e){
   e.preventDefault();
   //Have some code here, I dont want to put field validations here
   $("form").submit();
});

我不想为每个字段添加js验证,因此我如何使attibute所需的默认rails工作。如果我在这里遗漏了什么,请建议

答案

当您调用e.preventDefault()时,您会阻止浏览器的默认事件处理以进行验证并提交。在您的示例中,您只能显式调用表单提交,而不是验证。

您可以让浏览器处理此问题,方法是不要显式调用e.preventDefaultsubmit,或者只是以编程方式调用验证

$("form")[0].checkValidity();

(Qazxswpoi)。

请注意,您需要在浏览器元素上调用source而不是在jQuery元素上调用。

根据您希望使用代码实现的内容,使用表单的提交API(如checkValidity()示例)也很方便,因此您不仅要将其链接到提交按钮,还要在表单提交上调用它。

以上是关于Rails表单字段验证和单击处理程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用表单的情况下从 Rails 应用程序发布到外部 url

如果 Rails 表单中的另一个字段为空,则验证嵌套字段

Rails:如果表单返回验证错误,则保持 JSON 表单字段填充

Rails 表单验证方式 + 无提交按钮

将附加字段动态添加到 rails 表单

ruby on rails has_many 关系表单验证孩子