我正在使用form_tag
<%= form_tag url_for(:action=>'url'), :onclick=> "$('.submit_btn').addClass('disabled');", :complete=>$(".submit_btn").removeClass("disabled"), :method=>"post", :remote =>true do %>
...........
...............
<%= submit_tag "Create", :class=>"submit_btn", :disable_with => "Please wait..." %>
在提交表单时,onclick禁用了该按钮,这是正确的。但是,一旦我得到响应,它就不会从提交按钮中删除“禁用”类。我看了网上和API文档......但是没有找到让这个工作的方法。
我希望当表单提交数据时禁用按钮并且响应启用按钮。
任何人都可以提供指针吗?
由于 病毒
答案 0 :(得分:1)
假设您正在使用jquery-ujs,则无需手动执行此操作,这意味着您应删除:onclick
和:complete
部分 - 简单添加:disable_with
和jquery -ujs会为你做剩下的事。
所以你的代码将成为:
<%= form_tag url_for(:action=>'url'), :method=>"post", :remote =>true do %>
<%= submit_tag "Create", :class=>"submit_btn", :disable_with => "Please wait..." %>
如果要在此AJAX请求之前/期间/之后执行某些自定义操作,则将表单绑定到jquery-ujs(reference here)触发的自定义事件。例如,以下代码可以实现您的目的:
<script>
$('#form-id').bind({
'ajax:before': function () {
$('.submit_btn').addClass('disabled');
},
'ajax:complete': function () {
$('.submit_btn').removeClass('disabled');
}
});
</script>