我在 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 选择框也处于焦点状态,我同时获得了两个焦点元素
有人可以解释如何绕过它吗?