Rails3 には、AJAX を呼び出してテーブルを結果に置き換える単純なフォームがあります。
coffee.js は
id_handler = ->
$.ajax
url: "/surveys_search"
data:
id: $(this).val()
name: $(this).prop("name")
input_handler = ->
$.ajax
url: "/surveys_search"
data:
search: $(this).val()
name: $(this).prop("name")
$(document).ready ->
$(document).on "change", "select", id_handler
$(document).on "keyup", "input", input_handler
$("#survey_active").bind "change", ->
$.ajax
url: "/surveys_search"
data:
survey_active: (if $(this).is(":checked") then 1 else 0)
私のフォームは
<div class="well well-small">
<h4>Quick search</h4>
<dl class="dl-horizontal">
<dt><strong>Quiz:</strong></dt> <dd>
<%= text_field_tag :surveys_search, params[:surveys_search], :class=>"text-field" %>
<%= select_tag 'survey_select', options_from_collection_for_select(Survey.all, 'id', 'name'),:prompt=>"All"%>
<strong>Published?</strong> <%= check_box_tag 'survey_active' %>
</dd>
<dt><strong>Prize:</strong></dt> <dd><%= text_field_tag :prizes_search, params[:prizes_search], :class=>"text-field" %> <%= select_tag 'prize_select', options_from_collection_for_select(Prize.all, 'id', 'name'),:prompt=>"All"%></dd>
<dt><strong>Location:</strong></dt> <dd><%= text_field_tag :locations_search, params[:prizes_search], :class=>"text-field" %> <%= select_tag 'location_select', options_from_collection_for_select(Location.all, 'id', 'name'),:prompt=>"All"%></dd>
</dl>
</div>
私の問題は、ドロップダウンの値を変更すると、別の要素を再クリックしてから再変更しようとするまで、選択ボックスが変更できなくなることです。
変更すると、選択ドロップダウンが効果的にロックされます
上記のフォームで TOP / FIRST 選択ドロップダウンを変更すると、AJAX 呼び出しの後、TOP 選択がロックされ、BOTTOM / THIRD 選択ボックスもフォーカスされ、2 つの要素が同時にフォーカスされます。
誰かがそれを回避する方法を説明できますか?