我有我使用的渲染错误的AJAX形式的问题,但它允许,只要他们保持捣碎的用户基本上提交的时间无限数量提交按钮。当用户按下提交按钮时,会发生什么情况,它会使用disable_with文本灰显几分之一秒,然后再次变为可点击。用户然后可以继续按下并发出发布请求。只有当用户停止时,重定向才会发生。我基本上搜索了这个特定问题的所有答案,而且他们似乎并不适合我。我想知道是否有人可以帮忙。的Rails阿贾克斯的form_for正在使多个提交(无法禁用提交按钮)
我用javascript禁用按钮并使用数据尝试:{disable_with: “...”}。
这里是我的.html.erb代码的权利截至目前:
<div class="container-fluid main-container">
<%= form_for [@group, @task], remote: true do |f| %>
<%= f.label :name %>
<%= f.text_field :name, class: "form-control" %>
<%= f.label :description %>
<%= f.text_area :description, class: "form-control" %>
<%= f.label :priority %>
<%= f.text_field :priority, class: "form-control" %>
<%= f.label :user %>
<%= f.select :user_id, options_for_select(@group.options_for_user), {}, class: "form-control" %>
<%= f.submit "Create Task", class: "btn btn-primary new-task-button", data: {disable_with: "Creating task..."} %>
<% end %>
</div>
这里是新的任务,我的控制器代码并创建行动
def new
@group = Group.find(params[:group_id])
@task = Task.new
end
def create
new_user = User.find(task_params.delete(:user_id))
@task = Task.new(to_update)
respond_to do |format|
if @task.save
@group.tasks << @task
new_user.tasks << @task
format.html {redirect_to @group}
TasksChannel.broadcast_to(@group, {action: "create", data: @task, user: new_user})
else
@errors = @task.errors
format.js {render :file => "layouts/errors.js.erb"}
end
end
end
def task_params
return params.require(:task).permit(:name, :description, :priority, :user_id)
end
我一直停留在这一段时间,这是如此令人沮丧。我将不胜感激任何帮助。
什么''to_update? –
对不起,意在删除。我会更新它。这只是强大的过滤参数,即params.require(:任务).permit(....) –