如果只有所有字段都有效,如何通过验证检查提交一次rails表单

时间:2016-10-25 10:31:15

标签: ruby-on-rails forms validation

我在我的rails应用程序中有一个表单,但是当我们多次点击时我会多次提交我想要通过检查所有验证提交表单一次,我尝试在点击时禁用按钮但是它只有点击的desables按钮,而不是实际发送数据或检查验证。 请帮助我,提前致谢。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你可以使用if或除非conditon

 <%unless object.new_record?%>

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

 <%end%>

答案 2 :(得分:0)

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)

}

答案 3 :(得分:0)

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