2017-06-04 25 views
0

我有我使用的渲染錯誤的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 

我一直停留在這一段時間,這是如此令人沮喪。我將不勝感激任何幫助。

+0

什麼''to_update? –

+0

對不起,意在刪除。我會更新它。這只是強大的過濾參數,即params.require(:任務).permit(....) –

回答

0
  1. 檢查頁面中的html是否具有該屬性。在localhost:3000上打開瀏覽器並打開開發人員工具欄以檢查該html元素。

  2. 寫一些jQuery的你applicationscript.js文件和測試問題是否得到解決。也許有一個與渦輪鏈接或一些衝突否則

    $('#my-button').prop('disabled', true); 
    

Disabling button after disable_with

東西
  • 測試的效果還取決於簡單的jQuery項目,而不Ruby on Rails的。 。
  • +0

    謝謝你的提示!如果有人遇到同樣的問題,我最終不得不關閉按鈕並禁用create.js.erb中的數據禁用。然後,因爲控制器中的重定向不起作用,我使用javascript重定向。 –

    +0

    @JerryChen好的。不容易..太棒了! –