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

时间:2017-12-23 07:20:39

标签: jquery ruby click ruby-on-rails-2

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

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

当我提交表格时,通过抛出错误表示该字段是强制性的,它可以正常工作。但是当我将提交按钮与点击事件绑定时, required =&gt;真的不再起作用了。例如

$(".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工作。如果我在这里遗漏了什么,请建议

1 个答案:

答案 0 :(得分:0)

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

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

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

source)。

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

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