使用jQuery更改表单提交类型

时间:2011-08-18 19:49:37

标签: php javascript jquery html css

我有一个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);
        }
    });
});

2 个答案:

答案 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