开发者

Input a name into a text field, but submit an ID?

开发者 https://www.devze.com 2023-02-02 03:35 出处:网络
I have a form with a text_field in my app where I input the name of a book. The book already exists i开发者_如何转开发n my database. How can I submit the ID of the book in the form instead of the name

I have a form with a text_field in my app where I input the name of a book. The book already exists i开发者_如何转开发n my database. How can I submit the ID of the book in the form instead of the name?

I should mention that I don't want to use a collection select here, because I want this to eventually be an auto-complete field.


You should handle this logic with your autoselect.

$('.book_search').live('keyup.autocomplete', function(){
  $(this).autocomplete({
    source : '/ajax_functions/book_search',
    select : function(event, ui){
      book_id = ui.item.id;
      label = ui.item.value;

      $(this).before(label); // replace with text
      $(this).before('<input name="books'+[book_id]" type="hidden" value="'+user_id+'">');
      $(this).remove();
      return false;
    }
  });
});

You're autocomplete json:

books = []
Book.search(params[:term]).each do |b|
  books << { :label => b.name, :id => b.id }
end

render :json => books

This will do what you want. You'll still need to implement server logic to add new books that don't yet exist.

0

精彩评论

暂无评论...
验证码 换一张
取 消