【问题标题】: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
【解决方案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..." }。一旦您的按钮被单击一次,该按钮将被禁用(并且不再向您的控制器发送数据)并且按钮上的文本将替换为“请稍候...”。