0

我有这个代码

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>");
        }
    }   

    }); 
    });
}   ); 
4

1 回答 1

1

只有在触发了启动 AJAX 功能的事件时,您的搜索才会“触发”。因此,您需要触发事件。我的疯狂猜测是该事件必然会发生:

 - keyup
 - click
 - blur

您尚未发布相关代码,但这应该足以回答...


更新后

一个快速的解决方案是keyup在搜索字段上启动事件:

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

或者,您可以重构代码:

function searchlogic() { ... };

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

searchlogic();
于 2012-05-14T23:35:41.197 回答