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

Automatically submit input on page open with javascript

本文关键字:提交 输入 javascript      更新时间:2023-09-26

我有这个代码

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

仅当触发启动 AJAX 功能的事件时,搜索才会">触发"。因此,您需要触发事件。我的疯狂猜测是该事件必然会:

 - keyup
 - click
 - blur

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


更新后

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

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

或者,您可以重构代码:

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