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 に答える