Мне нравится этот плагин, я с легкостью использовал его в PHP, но сейчас я пытаюсь в Rails 3 и по какой-то причине, когда форма отправляется, она не передает идентификатор выбранный элемент, он представляет фактическую стоимость. Я даже распечатал JSON, чтобы убедиться, что данные правильно вводятся в поле ввода, и в нем отображаются идентификатор и ЗНАЧЕНИЕ.
Любые идеи о том, почему это происходит. Я думал, что, возможно, мне нужно добавить пользовательский вызов javascript для onBlur, но мне никогда не приходилось делать это до этого. У кого-нибудь есть какие-либо другие предложения или даже совершенно другой способ выполнить автозаполнение в Rails с несколькими вариантами выбора?
Я ценю любую помощь, которую вы можете мне оказать, спасибо !! И да, я знаю, что вход не очищен:)
def autocomplete
autolist = []
sql = "SELECT id,username from users WHERE username LIKE '" + params[:q] + "%'"
result = ActiveRecord::Base.connection.execute(sql)
result.each { |field| autolist.push( {"id" => field[0], "name" => field[1]} ) }
render :json => autolist, :layout => false
end
Код для формы:
<% form_for @message, :url => user_messages_path(@user), :html => { :multipart => true } do |f| %>
<tr>
<% if @reply_to.nil? %>
<td width="100"><p class="labels">To:</p></td>
<td><%= f.text_field :to %>
<%= error_message_on @message, :to %></td>
<% else %>
<td width="100">To: <%= @message.to %><%= f.hidden_field :to, :value => @message.to %></td>
<% end %>
</tr>
<tr>
<% if @reply_to.nil? %>
<td width="100"><p class="labels">Patient:</p></td>
<td><%= f.collection_select :patient_id, Patient.find_all_by_user_id(current_user), :id, :last_name %>
<%= error_message_on @message, :patient_id %></td>
<% else %>
<td width="100">Patient: <%= Patient.find(@message.patient_id).last_name %><%= f.hidden_field :patient_id, :value => @message.patient_id %></td>
<% end %>
</tr>
<tr>
<% if @reply_to.nil? %>
<td width="100"><p class="labels">Subject:</p></td>
<td><%= f.text_field :subject %>
<%= error_message_on @message, :subject %></td>
<% else %>
<td width="100">Subject: <%= @message.subject %><%= f.hidden_field :subject, :value => @message.subject %></td>
<% end %>
</tr>
<tr>
<td width="100" valign="top"><p class="labels">Message:</p></td>
<td><%= f.text_area :body %>
<%= error_message_on @message, :body %></td>
</tr>
<tr>
<td width="100" valign="top"><p class="labels">Attachment:</p></td>
<td><%= f.file_field :attachment %><%= error_message_on @message, :attachment %></td>
</tr>
<tr>
<td colspan="2"><%= submit_tag "Send" %></td>
</tr>
</table>
Javascript
<script language="javascript">
$(function($) {
$("#message_to").tokenInput("/users/1/friends/autocomplete", {
hintText: "Type in the name of a colleague",
noResultsText: "No results",
searchingText: "Searching..."
});
});
</script>