我有一个Google Instant风格的jQuery脚本,可以在用户在搜索框中输入内容时显示搜索结果。但是,我希望我的脚本能够让用户在他们第一次提交查询时按Enter键,然后在此之后让即时搜索脚本工作。
我如何使用下面发布的代码执行此操作?我希望你能理解我的问题。
$('input').keyup(function(){
query=$(this).val();
url='/'+type+'/'+query+'/';
window.location.hash=''+type+'/'+query+'/';
document.title=$(this).val()+' - My Search Script';
$('#results').show();
if(query==''){
window.location.hash='';
document.title='My Search Script';
$('#results').hide();
}
$.ajax({
type:'GET',
url:url,
dataType:'html',
success:function(results) {
$('#results').html(results);
}
});
});
答案 0 :(得分:2)
var pressed = false;
$('input').keyup(function(event){
if (event.keyCode == '13' || pressed)
{
pressed = true;
query=$(this).val();
url='/'+type+'/'+query+'/';
window.location.hash=''+type+'/'+query+'/';
document.title=$(this).val()+' - My Search Script';
$('#results').show();
if(query==''){
window.location.hash='';
document.title='My Search Script';
$('#results').hide();
}
$.ajax({
type:'GET',
url:url,
dataType:'html',
success:function(results) {
$('#results').html(results);
}
});
}
});
这只适用于输入密钥
答案 1 :(得分:0)
虽然用户未按Enter键,但脚本将不执行任何操作。一旦用户按下回车键,每次按下键时都会开始更新搜索:
var hasPressedEnter = false;
$('input').keyup(function(event){
if (event.keyCode == 13 /* ENTER */) {
hasPressedEnter = true;
}
if (!hasPressedEnter) {
return;
}
// rest of the code here