0

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 つの要素が同時にフォーカスされます。

誰かがそれを回避する方法を説明できますか?

4

1 に答える 1

0
id_handler = ->
   $.ajax
      url: "/surveys_search"
      data:
        id: $(this).val()
        name: $(this).prop("name") 
      success: $(this).blur()
于 2013-03-11T14:07:07.983 に答える