【问题标题】:how to submit rails form once with validation check if only all fields are valid如果只有所有字段都有效,如何通过验证检查提交一次 Rails 表单
【发布时间】:2017-03-07 08:44:25
【问题描述】:

我的 Rails 应用程序中有一个表单,但是当我们单击多次时它会提交多次发送数据或检查验证。 请帮助我,在此先感谢。

【问题讨论】:

标签: ruby-on-rails forms validation


【解决方案1】:

您可以使用ClientSideValidation gem 来检查字段是否有效(它使用模型验证规则)。
在所有字段都有效之前,不会发送您的表单。

【讨论】:

  • 但同时我想禁用提交按钮以限制用户多次提交表单
【解决方案2】:

你可以使用 if 或 unless 条件来做到这一点

 <%unless object.new_record?%>

 <%=f.submit "save",:diabled=>'true'%>

 <%end%>

【讨论】:

    【解决方案3】:

    ClientSideValidation gem 具有可用于启用/禁用提交按钮的回调。 https://github.com/DavyJonesLocker/client_side_validations#callbacks

    // You will need to require 'jquery-ui' for this to work
    window.ClientSideValidations.callbacks.form.fail = function(form, message, callback) {
      form.find('#submit-button').prop('disabled', true)
    }
    
    window.ClientSideValidations.callbacks.form.pass = function(element, callback) {
      form.find('#submit-button').prop('disabled', false)
    

    }

    【讨论】:

      【解决方案4】:

      Rails 有一个内置的disable_with 方法,您可以在链接和按钮上使用它。所以你可以这样做:button_tag "Checkout", data: { disable_with: "Please wait..." }。一旦您的按钮被单击一次,该按钮将被禁用(并且不再向您的控制器发送数据)并且按钮上的文本将替换为“请稍候...”。

      【讨论】:

        猜你喜欢
        • 2023-01-17
        • 2015-03-01
        • 2016-11-23
        • 2021-06-27
        • 2017-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-05
        相关资源
        最近更新 更多