Tôi đã duyệt qua tất cả các câu hỏi và câu trả lời về chủ đề này nhưng tôi vẫn không thể làm cho kịch bản của mình hoạt động. Tôi muốn kích hoạt thao tác nút nhấp khi tùy chọn menu thả xuống được chọn; có vẻ đơn giản và rất phổ biến với AJAX.chọn và onChange trong biểu mẫu Ruby on Rails
Sau đây là các trích đoạn liên quan của mã của tôi:
<%= 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 %>
tôi đã sử dụng. ": Từ xa => 'true' cả về hình thức và nút bởi vì đó là cách duy nhất để có được AJAX làm việc tôi cũng đã cố gắng có và không có "html_options" và "javascript:" rõ ràng, sau khi tôi duyệt qua một số câu trả lời SO đã đề xuất nhưng điều đó không giúp ích gì. Tôi cũng đã thử onSelect và onClick thay vì onChange, nhưng vẫn không có may mắn.
HTML là như sau:
Menu1
<select id="test_Menu1" name="test[Menu1]"><option value="value1">Option1</option>
<option value="value2" selected="selected">Option2</option></select>
Như bạn có thể thấy, không có trình xử lý sự kiện onChange trong mã HTML; TẠI SAO? Bất cứ ai đang nhìn thấy những gì tôi đang làm sai?
Cảm ơn bạn đã được trợ giúp.
Cảm ơn rabusmar, đã giúp, nhưng khi tôi chọn OPTION1, bộ điều khiển được value2 và ngược lại. Tôi đã thêm một tùy chọn thứ 3, và có vẻ như bộ điều khiển không phải là tùy chọn mà tôi vừa chọn, nhưng cái trước đây! Tại sao nó làm điều này? Tôi đã kiểm tra điều này bằng cách thêm đặt "@ test.Menu1 =" + @ test.Menu1.to_s + "\ n" vào bộ điều khiển. – rh4games
Đó là vì giá trị chưa được đặt khi biểu mẫu được gửi. Bạn có thể sử dụng 'setTimeout' trong trình xử lý để bạn gửi giá trị chính xác. – rabusmar
Tôi có thể hỏi, làm cách nào để tham chiếu đến JavaScript bên ngoài tệp này, thay vì JavaScript nội tuyến ?? – Orz