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

问题描述 投票:1回答:1

我有一个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工作。如果我在这里遗漏了什么,请建议

jquery ruby click ruby-on-rails-2
1个回答
0
投票

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

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

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

(Qazxswpoi)。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.