2012-03-12 2 views
0

<select> 상자의 AJAX 이벤트를 가져 오려고합니다. 선택 사항이 변경 될 때 일부 동작을 수행합니다. 나는 형태로 선택 상자와 선택 변경을 수신 할 수있는 observe_form 방법을 내장 한레일 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인데, 선택 사항이 변경되면 무언가를 할 수 있습니다. 어떤 이유로, 선택이 변경되면 컨트롤러 기능이 전혀 호출되지 않습니다. "방화범"켜져 있고이 오류에게 시간을 많이 보는 것은

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

은 아래로 못을 모든 논리를 주석 처리하고 팝업 상자가 표시된 클릭 이벤트 만 있으면됩니다. 그러면 청취자가 작동 중임을 알 수 있습니다. 그게 작동하면 뭔가 논리가 잘못되었습니다. – Josh

답변

0

시도

observe_field (here를 논의) : 문제가 내가 어디

<%= 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