我的应用中有一个带有text_field的表单,我输入了一本书的名称。这本书已存在于我的数据库中。如何在表单中提交书籍的ID而不是名称?
我应该提一下,我不想在这里选择一个集合,因为我希望这最终成为一个自动完成的字段。
答案 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
这将做你想要的。您仍然需要实现服务器逻辑来添加尚不存在的新书。