簡體   English   中英

Rails 3:表單提交兩次

[英]Rails 3: Form getting submitted twice

我正在開發一個Rails應用程序,其中包含使用formtastic生成的表單。 我在本地開發和測試 - 就是在localhost:3000 w / Ruby-1.9.2,Rails-3.0.1,jQuery和AJAX。

下面是我看到的問題的示例屏幕輸出。 我的表單在1秒內相互提交兩次。 我不明白為什么會這樣。 我看到這個問題與所有請求 - 包括GET。

  1. 在2011-01-07 02:31:47開始POST“/ commerce / 6 / edit_balance”for 127.0.0.1 +0530由BusinessesController處理#edit_balance作為JS參數:{“utf8”=>“✓”,“authenticity_token”= > “zcWH08sV8kPbAYy7JQX64Cu2e1i / kEB1AB4x5a08CO8 =”

  2. 在2011-01-07 02:31:48開始POST“/ commerce / 6 / edit_balance”for 127.0.0.1 +0530由BusinessesController處理#edit_balance作為JS參數:{“utf8”=>“✓”,“authenticity_token”= > “zcWH08sV8kPbAYy7JQX64Cu2e1i / kEB1AB4x5a08CO8 =”

所以我想知道我是否犯了一個基本的編程錯誤。 如果是的話,那么請您提出一些我可以嘗試的解決方案。

我在部署到Heroku之后就遇到了同樣的問題......我預先編譯了我的資產,突然間我得到了雙重AJAX提交。 我想我不知何故最終在公共/資產中出現了重復的javascript文件。

為了解決這個問題,我剛剛刪除了我的整個公共/資產目錄。

如果您使用Javascript提交表單,請嘗試在提交表單時將提交按鈕設置為禁用。 使用jQuery,它將是這樣的(未經測試):

$('form').submit(function(){
  $(this).find(input[type='submit']).attr("disabled", "true");
  ... // submit form via AJAX
  return false;
});

謝謝PolarBlau ..讓我試試你的建議..

Apnediving:下面是1.創建表單的代碼位(形式部分)2。定義包含表單的對話框(對話框部分)和3.將動作附加到表單的JS。

表格部分(credits_form)

- f.inputs :name => 'Edit Credits' do 
  = f.input :numeric_input_1, :label => 'Amount', :as => :select, :collection => [1000,2000,3000] 
  = f.input :boolean_input_1, :label => 'Add Credits'
  = f.commit_button :label => 'Submit' 

對話部分

#編輯學分,對話

- @user_input = UserInput.new

 = semantic_form_for @user_input, :remote => true do |f|     
 = render :partial => 'businesses/credit_form', :locals => {:f => f}

JS代碼

$.getJSON('/businesses/' + id + '/load_credits', function(data) { 
    var form = $('#edit-credits-dialog form') ; 

    form.attr('action', '/businesses/' + id + '/edit_balance') ; <-- seems to be happening twice
    $('#edit-credits-dialog').dialog('open') ; <--- happens once 
}) ; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM