2012-04-07 36 views
0

3應用程序,還有一個select_tag平變化事件,該事件發送AJAX請求:其中,goAjaxjs.erb被稱爲僅在第一次在我導軌

f.select 'forma_id', @collection, {:include_blank => true}, {:onchange => "goAjax('/lancamentos/receber_forma', this.value)", :class => 'btn'} 

function goAjax(_url, _value) { 
    $.ajax({url: _url, data: 'value=' + _value, dataType: 'script'}) 
} 

lancamentos_controller#receber_forma是(簡化版本):

def receber_forma 
    @lancamento = Lancamento.new(:forma_id => params[:value]) 
    logger.info 'forma_id = ' + @lancamento.forma_id 
    respond_to do |format| 
    format.html { render :new } 
    format.js 
    end 
end 

receber_forma.js.erb

$('div#cartoes').replaceWith("<%= escape_javascript(label_tag(@lancamento.forma_id)) %>"); 

正在發生的事情是,當我選擇上選擇一個值,呈現在標籤上的值總是在價值上發送第一次通話。以下值更改根本不會更改標籤文本。方法receber_forma中的記錄器顯示總是發送新的選定值。

有人知道我在做什麼錯在這裏?

p.s.:sorry英語

回答

1

的任何錯誤,你完全免去您div#cartoes一個標籤,所以代碼運行第二次,它無法找到與cartoes ID的div。你可能想使用.html代替.replaceWith,讓標籤成爲div的內容,而不是完全取代它:

$('div#cartoes').html("<%= escape_javascript(label_tag(@lancamento.forma_id)) %>"); 
+0

感謝迪倫......解決了這個問題! – thaleshcv 2012-04-09 18:43:48

相關問題