Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails Ajax表单_正在启用多个提交(无法禁用提交按钮)_Ruby On Rails_Ajax_Forms_Form For - Fatal编程技术网

Ruby on rails Rails Ajax表单_正在启用多个提交(无法禁用提交按钮)

Ruby on rails Rails Ajax表单_正在启用多个提交(无法禁用提交按钮),ruby-on-rails,ajax,forms,form-for,Ruby On Rails,Ajax,Forms,Form For,我对用于呈现错误的ajax表单有一个问题,但它允许用户提交基本上不受限制的时间,只要他们继续使用提交按钮。当用户按下submit(提交)按钮时,文本禁用按钮会灰显几秒钟,然后再次变为可单击。然后用户可以继续按并发出post请求。只有当用户停止时才会发生重定向。我基本上已经搜索了这个问题的所有答案,但它们似乎对我不起作用。我想知道是否有人能帮忙 我尝试使用javascript禁用按钮,并使用数据:{disable_with:“…”} 以下是我的.html.erb代码: <div class=

我对用于呈现错误的ajax表单有一个问题,但它允许用户提交基本上不受限制的时间,只要他们继续使用提交按钮。当用户按下submit(提交)按钮时,文本禁用按钮会灰显几秒钟,然后再次变为可单击。然后用户可以继续按并发出post请求。只有当用户停止时才会发生重定向。我基本上已经搜索了这个问题的所有答案,但它们似乎对我不起作用。我想知道是否有人能帮忙

我尝试使用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
def新建
@group=group.find(参数[:group\u id])
@task=task.new
结束
def创建
new_user=user.find(任务参数删除(:user_id))
@任务=任务。新建(要更新)
回应待办事项|格式|
如果@task.save
@组任务
  • 检查页面中的html是否具有该属性。在localhost:3000上打开浏览器并打开开发者工具栏以检查html元素

  • 应用程序script.js
    文件中编写一些Jquery,并测试问题是否得到解决。可能与turbo links或其他东西存在冲突

    $('#my-button').prop('disabled', true);
    
  • 在没有RubyonRails的简单jquery项目上也测试这种效果

  • 更新的
    是什么?
    ?对不起,我的意思是删除它。我会更新的。这只是过滤后的强参数,即params.require(:task).permit(..)谢谢提示!如果有人遇到同样的问题,我最终不得不在我的create.js.erb中禁用按钮和数据禁用。然后,由于重定向在控制器中由于某种原因无法工作,我使用javascript重定向。@JerryChen Ok。不容易。。伟大的