在文本字段中输入名称,但提交ID?

时间:2010-12-31 21:27:52

标签: ruby-on-rails

我的应用中有一个带有text_field的表单,我输入了一本书的名称。这本书已存在于我的数据库中。如何在表单中提交书籍的ID而不是名称?

我应该提一下,我不想在这里选择一个集合,因为我希望这最终成为一个自动完成的字段。

1 个答案:

答案 0 :(得分:0)

您应该使用自动选择处理此逻辑。

$('.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;
    }
  });
});

你是自动完成的json:

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

render :json => books

这将做你想要的。您仍然需要实现服务器逻辑来添加尚不存在的新书。