Я совершенно новичок в javascript и, вероятно, кусаю больше, чем могу прожевать, но я пытаюсь заставить работать виджет jQuery autocomplete *1002*, работающий на моем сайте Rails.
У меня есть страница под названием "ссылки", где я хочу иметь возможность назначить человеку ссылку. Используя автозаполнение, я должен иметь текстовое поле, в котором выпадает список имен людей, предложенных автозаполнением, и при выборе имя человека остается в текстовом поле. Но когда форма отправлена, я не хочу, чтобы имена лиц отправлялись вместе с формой, я хочу, чтобы удостоверение личности отправлялось вместе с формой.
Таким образом, вопрос заключается в том, как сделать так, чтобы имя лица, которое было выбрано, оставалось в текстовом поле, но после отправки идентификатор лица был отправлен.
В Rails вот как я передаю данные JSON с моего контроллера Person:
def index
if params[:term]
@people = Person.find(:all,:conditions => ['given_name LIKE ?', "#{params[:term]}%"], :limit => 5)
else
@people = Person.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @people.to_json(:only => [:id, :given_name]) }
end
end
Выше приведен следующий текст JSON:
[{"person":{"id":1,"given_name":"dale"}},{"person":{"id":2,"given_name":"sally"}},{"person":{"id":3,"given_name":"joe"}}]
Используя плагин автозаполнения jQuery, как я могу отобразить 'имя_данных' в предложенных совпадениях, оставив 'имя_данных' в текстовом поле после выбора, но отправив значение 'id' при отправке формы.
Я думаю, что мне нужно указать в javascript, какую метку показывать и какое значение отправлять. Поскольку я только знакомлюсь с javascript, если бы вы могли объяснить, как работает ваш ответ, это было бы оценено. Спасибо.