我正在使用此代码通过ajax和jquery进行搜索:
// this is the id of the submit button
$("form#search_form input#key").keyup(function() {
if ( $(this).val().length >=2 ){
var url = base_url()+"welcome/search2"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: { 'key':$("#key").val() }, // serializes the form's elements.
success: function(data)
{
//alert(data); // show response from the php script.
$('#livesearch').html(data);
}
});
return false; // avoid to execute the actual submit of the form.
}
else $("#fonded2").hide();
});
但是当用户快速写时会出现问题。 当用户在500ms后输入一个新的字母时,有没有办法中断搜索
答案 0 :(得分:3)
var timer;
$("form#search_form input#key").keyup(function(e) {
if (e.which==13) return false; // avoid executing form.
clearTimeout(timer);
if ( this.value.length >=2 ){
var url = base_url()+"welcome/search2";
timer=setTimeout(function() {
$.ajax({
type: "POST",
url: url,
data: { 'key':$("#key").val() },
success: function(data) {
//alert(data);
$('#livesearch').html(data);
}
});
}, 500);
}else{
$("#fonded2").hide();
}
});
答案 1 :(得分:0)
也许你应该等到输入模糊。我想这是在用户名字段的注册页面上考虑Google waits for the blur event to be called的最佳方式。