2009-10-15 4 views
0

양식 통화에 대해 완벽하게 작동하는 form_remote를 보유하고 있습니다. 내가 원하는 유일한 변경 사항은 선택 상자에 제출 버튼을 사용하지 않는 것입니다. 그래서 그들은 정확한 통화를 클릭하고 아약스 요청을 제출합니다.rails form_remote_tag and onselect submit

<%= collection_select(:currency, :set, Currency.find(:all, :conditions => 'primary_source = "ECB"'), :code, :pretty_name, { :selected => session[:currency] }, { :onchange => "$('currency').submit()" }) %> 

onchange를 선택을위한 작품, 대신 원격 아약스 요청을 사용하는, 그것은이 같은 일을하도록 내가 remote_tag을 시작할 수있는 방법, 대신 하나 개의 요소 ... 전체 페이지를 refeshes 제출을 클릭하면됩니까?

답변

1

레일스가 양식의 onsubmit 속성에서 인라인 Ajax 메소드로 remote_form_for를 구현한다는 문제가 있습니다. 문제는 submit 이벤트는 사용자가 $ ('form')을 호출하는 것이 아니라 실제로 양식을 제출할 때만 발생한다는 것입니다. 사실 일부 브라우저는 이벤트를 실행하지만 다른 사용자는 실행하지 못할 수도 있습니다. 어쨌든 당신이 발견 한 일반적인 경우에는 작동하지 않습니다.

하나의 가능한 해결책과 Firefox 3.5에서만 테스트 했으므로 주행 거리가 달라질 수 있으므로 직접 함수로 속성을 호출하십시오. 그래서 내부는 : 넣어 onchange를 :

$('currency').onsubmit() 

을 그건 당신이 생성 된 소스 볼 필요가 있습니다 일을하고, 태그의 onsubmit 속성에서 벗어나 직접 호출 할 수있는 독립형 방법으로 AJAX 요청을 당기지 않는 경우 .

내가 아는 한 신뢰할 수있는 네이티브 이벤트를 실행하는 브라우저 간 방법은 없습니다.

+0

파이어 폭스, 크롬 및 사파리에서 작동합니다 ... 지금은 충분히 좋습니다. 감사! – holden