【问题标题】:Rails form field validation and click handlerRails 表单字段验证和单击处理程序
【发布时间】:2018-06-05 15:29:55
【问题描述】:

我有一个带有一些必填字段的 form_tag,如下所示

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

当我只用这个提交表单时,它通过抛出错误说该字段是强制性的,它可以正常工作。但是,当我将提交按钮与单击事件绑定时,required=> true 不再起作用。例如。

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

我不想对每个字段都进行 js 验证,所以我怎样才能使默认的 rails 所需的属性起作用。如果在这里遗漏任何东西,请提出建议

【问题讨论】:

  • 你试过删除e.preventDefault();

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


【解决方案1】:

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

您可以让浏览器处理这个问题,不显式调用 e.preventDefaultsubmit,或者只使用

以编程方式调用验证
$("form")[0].checkValidity();

(source).

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

根据您希望使用代码实现的目标,使用表单的提交 API 可能也很方便,例如 this 示例,因此您不仅要将此链接到提交按钮,还要在表单上调用它提交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    相关资源
    最近更新 更多