이 주제에 대한 모든 SO 질문 및 답변을 탐색했지만 아직 시나리오를 작성할 수 없습니다. 드롭 다운 메뉴 옵션을 선택한 경우 클릭 동작을 트리거하려고합니다. 간단하고 AJAX와 매우 공통적이어야합니다.Ruby on Rails 양식에서 선택 및 변경하기
이<%= form_for(@test, :html => {:id => "form_id", :name => "MyForm", :remote => "true"}) do |form| %>
<%= form.label "Menu1" %>
<%= form.select (:Menu1, [["Option1","value1"],["Option2","value2"]], :html_options=>{:onChange=>"javascript: this.form.apply_button_name.click();"}) %>
<!-- more select menus and text fields here -->
<div class="actions">
<%= form.submit "Apply", :name => "apply_button_name", :remote => "true" %>
</div>
<% end %>
내가 사용
. ": : 리모콘 =>"사실은 "모두 형태와 그 AJAX 작업 얻을 수있는 유일한 방법이기 때문에 버튼 나는 또한 시도 여기
내 코드의 관련 발췌 "html_options"및 "javascript : 명시 적"및 "javascript : 없음"을 사용하고 난 후에도 도움이되지 않았다는 것을 보여주었습니다. 또한 onChange 대신 onClick을 시도했지만 onChange 대신 운이 좋았지 만 여전히 운이 없었습니다 ..생성 된 HTML은 다음과 같습니다.
Menu1
<select id="test_Menu1" name="test[Menu1]"><option value="value1">Option1</option>
<option value="value2" selected="selected">Option2</option></select>
보시다시피 HTML 코드에는 onChange 이벤트 핸들러가 없습니다. 왜? 누구든지 내가 뭘 잘못보고있는거야?
도움 주셔서 감사합니다.
감사 rabusmar와 onchange를 사용하려고하지만 옵션 1을 선택하면, 컨트롤러는 값 2를 얻고, 그 반대의 경우도 마찬가지입니다. 세 번째 옵션을 추가했는데 컨트롤러가 방금 선택한 옵션이 아닌 것 같습니다. 왜이 일을하는거야? 나는 컨트롤러에 puts "@ test.Menu1 ="+ @ test.Menu1.to_s + "\ n"을 추가하여 이것을 점검했다. – rh4games
양식을 보낼 때 값이 설정되지 않았기 때문입니다. 처리기에서'setTimeout'을 사용하여 올바른 값을 보낼 수 있습니다. – rabusmar
인라인 JavaScript 대신이 파일 외부의 JavaScript를 참조하는 방법을 묻습니다. – Orz