我正在使用http://www.dynatable.com/并且有一个用于过滤数据的搜索输入。问题是它可以打击输入/失去焦点等,我想在每次更改字母时使用它。
答案 0 :(得分:3)
您可以更改dynatable以满足您的需求。在jquery.dynatable.js(版本0.3.1)的第1215行,在enter keypress上执行搜索。您可以将此更改为keyup,而无需等待按Enter键。 默认代码:
$search
.bind(settings.inputs.queryEvent, function() {
obj.queries.runSearch($(this).val());
})
.bind('keyup', function(e) {
if (e.which == 13) {
obj.queries.runSearch($(this).val());
e.preventDefault();
}
});
修改后的代码:
$search
.bind(settings.inputs.queryEvent, function() {
obj.queries.runSearch($(this).val());
})
.bind('keyup', function(e) {
obj.queries.runSearch($(this).val());
e.preventDefault();
});
答案 1 :(得分:1)
对jquery.dynatable.js代码的以下更改将执行您想要的操作,并且还会在使用" x"清除搜索输入框时更新结果。如果你正在使用它。清除也会起作用的原因是使用的事件是"输入"而不是" keyup"或者"更改",原因详见documentation。
与输入事件不同,更改事件不一定会被触发 每个都改变一个元素的值。
原始代码
$search
.bind(settings.inputs.queryEvent, function() {
obj.queries.runSearch($(this).val());
})
.bind('kepress', function(e) {
if (e.which == 13) {
obj.queries.runSearch($(this).val());
e.preventDefault();
}
});
修改后的代码
$search
.bind(settings.inputs.queryEvent, function() {
obj.queries.runSearch($(this).val());
})
.bind('input', function(e) {
obj.queries.runSearch($(this).val());
e.preventDefault();
});
注意:基于nexuscreator的回答。非常好的答案,非常感谢你。
答案 2 :(得分:0)
为我工作:)
$search
.bind(settings.inputs.queryEvent, function() {
obj.queries.runSearch($(this).val());
})
.bind('keyup', function(e) {
obj.queries.runSearch($(this).val());
e.preventDefault();
});