我有一个输入文本框,可以使用此Autocompleter Plugin通过AJAX自动填充Mootools。
我目前正在使用' keyup '事件通过AJAX获取结果。 它有效,但我觉得它有点笨拙,因为每次键盘按下都会产生一个AJAX请求。
一旦用户完成输入后,我宁愿只做 ONE AJAX请求,就像用户暂停一样。
我尝试了'更改'事件,但更糟糕的是,我不得不点击输入文本框只是为了发出AJAX请求,然后再点击输入文本框让“onComplete”启动。
这是我的代码:
input.addEvent('keyup', function(e) {
new Autocompleter.Request.JSON(input.getProperty('id'), url, {
'postVar': 'search',
'maxChoices': 6,
'overflow': false,
'selectMode': 'pick',
'delay': 100,
'forceSelect': false,
onRequest: function() {
// do nothing
},
onComplete: function() {
// do nothing
}
});
});
我希望你们能在这里理解我的问题。
谢谢!
答案 0 :(得分:1)
将选项'delay': 100,
更改为更高的数字。
答案 1 :(得分:0)
执行on buttonpress功能,然后根据需要将函数冻结几秒钟
代码:
input.addEvent('keyup', function(e) {
setTimeout(function(){
new Autocompleter.Request.JSON(input.getProperty('id'), url, {
'postVar': 'search',
maxChoices: 6,
overflow :false,
'selectMode': 'pick',
delay : 100,
forceSelect:false,
onRequest: function() {
// do nothing
},
onComplete: function() {
// do nothing
}
});
},2000); //1000 = 1sec
});
希望它能解决您的问题,正如您在问题中所说的那样“一旦用户完成输入后,我宁愿只做一个AJAX请求,就像用户暂停一样。”
更多只是评论。
...谢谢