如何让typeahead在我的搜索栏中填充自定义参数
How can I make typeahead fill in my searchbar with custom params?
我在我的应用程序中安装了"twitter typeahead rails",并对其进行了设置,这样当我开始在搜索框中键入时,建议就会下降。然后,当我点击建议时,搜索框就会被填充。但现在,它会被displayKey填充,就像在定义建议的html中一样:
<div class='typeahead-name' id='<user.name>'><user.name></div>
如何在搜索栏中只填写user.name
?
Gemfile
gem 'twitter-typeahead-rails'
typeahead ified searchbox
<%= form_tag users_path, :method => :get do %>
<%= text_field_tag :search, params[:search], id:"typeahead" %>
<%= submit_tag "Search" %>
<% end %>
<script type="text/javascript">
// initialize bloodhound engine
$(document).ready(function(){
var bloodhound = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value);
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
// sends ajax request to /typeahead/%QUERY
// where %QUERY is user input
remote: '/typeahead/%QUERY',
});
bloodhound.initialize();
// initialize typeahead widget and hook it up to bloodhound engine
// #typeahead is just a text input
$('#typeahead').typeahead(null, {
displayKey: function(user) {
return "<div class='typeahead-name' id='" + user.name + "'>" + user.name + "</div>";
},
source: bloodhound.ttAdapter(),
});
});
</script>
路线
get 'typeahead/:query' => 'users#typeahead'
用户__controller.rb
def typeahead
q = params[:query]
render json: User.where('name like ?, "%#{q}%")
end
根据此处的文档,可以添加如下自定义建议
templates: {
suggestion: function (data) {
return '<p><strong>' + data.value + '</strong> - ' + data.year + '</p>';
}
}
这些是渲染的下拉项。displayKey
是从下拉列表中选择某个内容后在文本框中呈现的内容。
displayKey可以像这个一样呈现
displayKey: function(state){
return 'Selected is ' + state.val;
}
这是一个简单的演示
希望这能有所帮助。
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何让typeahead在我的搜索栏中填充自定义参数
- 从sql填充Jqgrid的自定义Add函数中的下拉数据
- 在自定义坐标处获取RaphaelJS元素的颜色填充
- ASP.net自定义控件,下拉值必须在服务器端填充,所选值在返回时丢失
- 动画自定义电池填充图标
- 如何在 sugarcrm 中的自定义下拉字段中更改值时填充自定义文本区域
- 自定义 css 属性或部分 css 变量填充程序
- 如何在表单中查找自定义元素并将其填充到输入中
- JavaScript-带自定义动画填充的条形图
- 自定义选择选项作为mysql填充的下拉列表中的第一个选项
- 如何通过AJAX将已填充的自定义类从javascript传递到.NETMVC应用程序
- 使用Solr和JsonRest使用自定义Dojo小部件填充OnDemandGrid
- 获取或填充自定义变量与谷歌地图方向的响应
- 如果控件尚未填充,则自定义验证器不会触发
- 在自定义指令中使用ng Repeat填充选择下拉列表
- 如何在交互式地图上使用自定义选项填充谷歌地图自动完成搜索结果
- 使用jQuery Ajax结果填充自定义JavaScript对象
- 使用JSP或javascript自定义文本框的自动填充
- 高级自定义字段/基于另一个字段填充选择