Bu konuyla ilgili tüm SO sorularına ve yanıtlarına göz attım ancak hala senaryolarımı gerçekleştiremiyorum. Bir açılır menü seçeneği seçildiğinde bir tıklama düğmesi eylemini tetiklemek istiyorum; basit görünüyor ve AJAX ile çok yaygın olmalı.select ve onChange Ruby on Rails formunu doldurun
<%= 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 %>
kullandığım
. ":: Uzak => 'true' hem form ve o AJAX çalışma almak için tek yol olduğu için düğme için ben de denedim İşte
benim kod ilgili alıntılar vardır Açıkça "html_options" ve "javascript:" olmaksızın, bazı SO cevablarına göz attıktan sonra bunu önerdim ama yardımcı olmadı. Ayrıca denedim.Select ve onClick yerine onClick, ama yine de şans yokHTML şöyledir:
Menu1
<select id="test_Menu1" name="test[Menu1]"><option value="value1">Option1</option>
<option value="value2" selected="selected">Option2</option></select>
Gördüğünüz gibi HTML kodunda onChange olay işleyicisi yok; NİYE YA? Neyi yanlış yaptığımı gören var mı?
Yardımlarınız için teşekkür ederiz.
Teşekkür rabusmar ile Onchange kullanmayı deneyin, ama OPTION1 seçtiğinizde, kontrolör değer2 alır ve tersi. Bir üçüncü seçenek ekledim ve kontrolörün daha önce seçtiğim seçenek değil, daha öncekini seçtiği görülüyor! Bunu neden yapıyor? Denetleyiciye "@ test.Menu1 =" + @ test.Menu1.to_s + "\ n" koyar. – rh4games
Çünkü form gönderildiğinde değer ayarlanmadı. İşleyicinizde 'setTimeout' öğesini kullanarak doğru değeri gönderebilirsiniz. – rabusmar
Satır içi JavaScript yerine bu dosyanın dışındaki bir JavaScript'e nasıl başvurabilirim? – Orz