jQuery-UIオートコンプリートウィジェットを使用するテキストフィールドを持つフォームがあります。RubyonRailsでAJAXを使用してこのフォームを部分的にロードしています<li id="activity_<%= activity.id %>"><%= link_to activity.address, edit_activity_path(activity), :remote => true %></li>
フォームはdocument.readyの後に読み込まれるため、オートコンプリートjQueryウィジェットはDOM要素にバインドされていません。
これはjQueryAJAX呼び出しではないため、Ajax呼び出しの後にオートコンプリートウィジェットをバインドするために使用できる成功コールバックはないと思います。
構文が$('selector')。autocompleteであるため、オートコンプリートウィジェットで見た.on()関数の使用方法がわかりません。
誰か助けてもらえますか?
これは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