使用javascript在页面打开时自动提交输入

时间:2012-05-14 23:30:08

标签: javascript html ajax forms

我有这段代码

var file = getUrlVars()["file"];
    if(file){
            document.getElementById('search').value = file; 
    }
    function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}

它从url读取参数文件,然后将值放在搜索字段中。 搜索字段是ajax驱动的,当用户输入一个字母时,它开始搜索并输出结果。 问题是当脚本将值放入搜索字段时没有任何反应,我如何使搜索启动?

这是我的搜索字段

<input type="text" id="search" class='search_input' />

更新 我的Ajax搜索代码就是这个

// Search
$(document).ready(function()
    {
        $(".search_input").focus();
        $(".search_input").keyup(function() 
    { 
    var search_input = $(this).val();
    var keyword= encodeURIComponent(search_input); 
    var yt_url='http://domain.com/search.php?q='+keyword;  
    $.ajax({
        type: "GET",
        url: yt_url,

        success: function(response)
    {
        $("#result").html('');
        if(response.length)
        { 
            $("#result").append(response); 
        }
        else
        {
            $("#result").html("<div id='no'>No results</div>");
        }
    }   

    }); 
    });
}   ); 

1 个答案:

答案 0 :(得分:1)

如果触发了启动AJAX功能的事件,则您的搜索只会“触发”。因此,您需要触发事件。我的猜测是事件必然要么:

 - keyup
 - click
 - blur

您尚未发布相关代码,但这应该足以解决问题......


更新后

快速解决方案是在搜索字段上发起keyup事件:

$(".search_input").keyup(function() { ... }).keyup();

或者,您可以重新考虑代码:

function searchlogic() { ... };

$(".search_input").keyup(searchlogic);

searchlogic();