2011-01-20 120 views
0

我在軌道中進行ajax調用來更新數據庫中的一個標誌。Ajax請求被觸發兩次

由於某種原因,請求被執行兩次。

在日誌中的2個呼叫之間的唯一區別是:​

Started PUT "/negotiations/groupprocurement_validation_toggle?id=1504" for 127.0.0.1 at 2011-01-20 22:28:39 +0100 
Processing by NegotiationsController#groupprocurement_validation_toggle as JS 


Started PUT "/negotiations/groupprocurement_validation_toggle?id=1504" for 127.0.0.1 at 2011-01-20 22:28:40 +0100 

處理由NegotiationsController#groupprocurement_validation_toggle作爲/

所以不同的是在 「爲JS」 或「作爲/「。

我不知道這意味着什麼:(

這裏的鏈接

​​

JavaScript的

$('a[id^=validation_]').live('click', function(){ 
     var line_id = $(this).attr('id').replace('validation_',''); 

     $.ajax({ 
      url: '/negotiations/gp_validation_toggle?id=' + line_id, 
      type: "PUT", 
     success: function(data){ 
      $('#validation_image_' + line_id).html(img_result); 
       $('#container').prepend(msg_result) 
       $('#flash_notice').delay(3000).fadeOut('slow'); 
     }, 
     beforeSend: function(){ 
      $('#validation_image_' + line_id).html('<img src="/images/loading_round.gif">'); 
     } 
     }); 
     return false; 
    }); 

,並在控制器中,我有

respond_to :html, :js, :csv 

def gp_validation_toggle 
     @negotiation = Negotiation.find(params[:id]) 
     @negotiation.validated_global = [email protected]_global 
     if @negotiation.save 
     flash[:notice] = "Modification saved" 
     else 
     flash[:notice] = "Oops something went wrong" 
     end 
    end 

我在做什麼錯?

感謝, P.

回答

0

嘗試使用委託,而不是活

+0

所以,它的工作不知何故。首先改變的js線\t $( '#列表')。代表( 'A', '點擊',函數(){ 現在只有1個請求,但沒有JavaScript代碼被執行:(。任何想法? – Pierre 2011-01-21 11:07:34