【发布时间】:2012-11-05 22:54:36
【问题描述】:
我有一个带有使用 jQuery-UI 自动完成小部件的文本字段的表单。
我正在使用 AJAX 和 Ruby on Rails <li id="activity_<%= activity.id %>"><%= link_to activity.address, edit_activity_path(activity), :remote => true %></li> 将此表单作为部分加载
由于表单是在 document.ready 之后加载的,因此自动完成 jQuery 小部件没有绑定到 DOM 元素。
由于这不是一个 jQuery AJAX 调用,我认为在 Ajax 调用之后没有可以用来绑定自动完成小部件的成功回调。
我不确定如何使用我在自动完成小部件中看到的 .on() 函数,因为语法是 $('selector').autocomplete
有人可以帮忙吗?
这是edit.js.erb文件:
$("#activity_form").html("<%= escape_javascript(render(:partial => "form"))%>");
这是我的 jQuery 代码,用于将自动完成小部件绑定到我的文本字段。
jQuery ->
$('[type="text"][name*="[geocode_location]"]').autocomplete
source: (request, response) ->
$.ajax
url: "http://ws.geonames.org/searchJSON"
dataType: "jsonp"
data:
featureClass: "P"
style: "full"
maxRows: 12
name_startsWith: request.term
success: (data) ->
response $.map(data.geonames, (item) ->
label: item.name + ((if item.adminName1 then ", " + item.adminName1 else "")) + ", " + item.countryName
value: item.lat + ", " + item.lng
)
minLength: 2
open: ->
$(this).removeClass("ui-corner-all").addClass "ui-corner-top"
close: ->
$(this).removeClass("ui-corner-top").addClass "ui-corner-all"
focus: (event, ui) ->
event.preventDefault()
$(this).val ui.item.label
select: (event, ui) ->
event.preventDefault()
$(this).val ui.item.label
$(this).siblings('[name*="[geocode_ll]"]').val ui.item.value
【问题讨论】:
标签: jquery ruby-on-rails ajax ruby-on-rails-3 jquery-ui