我有以下功能,我想每次都调用,用户在typeahead
输入字段中键入内容。
function getAllActiveUsers() {
var userList = $('#usersTable').jqGrid('getGridParam').userData;
var userNames = {};
if(userList) {
// Return the list of all active users
$(userList).each(function() {
if(this.userStatus != 1) {
// If the user is verified
// Could be active/inactive
userNames.user = this.username;
}
});
}
return JSON.stringify(userNames);
}
HTML:
<div id="the-basics">
<input class="typeahead" type="text" data-provide="typeahead" placeholder="User List">
</div>
我一直在浏览examples,但不了解如何实现此功能。
修改:
当我初始化为:
时,为什么它不起作用$('.typeahead').typeahead({
source : getAllActiveUsers
});
答案 0 :(得分:1)
您可以使用.keyup jquery函数
$( ".typeahead" ).keyup(function() {
getAllActiveUsers();
});
答案 1 :(得分:1)
试试这个
$(document).ready(function(){
$('.typeahead').keyup(function(){
getAllActiveUsers();
});
});
答案 2 :(得分:0)
从您提供的参考文献中,您可以在ID .typeahead
中指定班级#the-basics
:
$(document).ready(function(){
$('#the-basics .typeahead').typeahead({
//code here;
}
}
由于在文档准备就绪之前无法安全操作页面,因此您应该使用$(document).ready
。
另外,尝试使用浏览器控制台并检查是否可以访问$('#the-basics .typeahead')
答案 3 :(得分:0)
您可以使用在释放密钥时触发的Jquery Keyup。
$( ".typeahead" ).on('keyup',function() {
getAllActiveUsers();
});
答案 4 :(得分:0)
如果您的文本框动态出现,那么您应该尝试
$(document).on("keyup", ".typeahead" , function() {
getAllActiveUsers();
});
尝试这个,让我们知道它是否有效。
答案 5 :(得分:0)
应该可以
var getAllActiveUsers = function(q, cb, cb2) {
// cb for sync, cb2 for async
var userList = $('#usersTable').jqGrid('getGridParam').userData;
var filterted = /* whatever you want to do with q */;
cb(filtered);
};
$('.typeahead').typeahead({
/* Options */
},
{
source : getAllActiveUsers
});