2012-03-12 21 views
0

<select>ボックスのAJAXイベントを取得しようとしていますが、選択が変更されたときに何らかの処理が行われます。私は、フォームでの選択ボックスと選択の変更をリッスンするobserve_form方法が埋め込まれているRails AJAX選択ボックス

<td> 
    <%= form_tag '', { :id => 'test_form' } do %> 
    <select name='repo' value="<%= session[:repo] %>" > 
     <option></option> 
     <%@repos.sort! { |a,b| a.repo <=> b.repo } 
      @repos.each do |r| %> 
      <option <%= session[:repo]==r.repo ? "selected='repo'" : '' %>> 
       <%=URI.escape(r.repo)%> 
      </option> 
     <% end %> 
    </select> 
    <% end %> 

    <%= observe_form('test_form', :frequency => 2, 
    :update => 'update_results', 
    :url => {:action => :update_report, :page => 0, :update => 1 }, 
    :loading => "$('res_spin').show()", :complete => "$('res_spin').hide()") %> 
</td> 

選択ボックスは、テーブルの<td>タグ内の内部に埋め込まれています。私のコントローラの機能はupdate_reportで、選択が変わると何かができます。何らかの理由で、選択が変更されると、コントローラの機能がまったく呼び出されません。 "Firebugの" オンにされ、このエラーに多くの時間を見てすることは

$(form) is null 
    var elements = $(form).getElementsByTagName('*'), 
+0

は見極めるために、すべてのロジックをコメントアウトし、ポップアップボックスを表示するクリックイベントをオンにするだけです。これは、リスナーが動作していることを示しています。それがうまくいくなら、あなたのロジックに何か間違っている。 – Josh

答えて

0

てみ

observe_fieldhereを議論したように):問題は私がどこにあるか

<%= observe_field(:state, :url => { :action => :update_report, :page => 0, :update => 1 }, :update => :update_results, :with => 'repo' ) %>

+0

まだ動作しません。興味深いことに、私は他のどこかで同じコードを使用しています。ここでの唯一の違いは、form_tagが​​タグで埋め込まれていることです。 – Vignesh

+0

出力を投稿できますか?あなたのフォームタグに何か間違っていると思います。 –

+0

ああ。 html出力にはformタグはありません。私は​​タグを見るだけで、そこにはフォームタグはありません。何故ですか? – Vignesh

関連する問題