2012-05-14 71 views
0

我有這樣的代碼打開頁面上自動提交輸入使用javascript

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' /> 

UPDATE: 我的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>"); 
     } 
    } 

    }); 
    }); 
} ); 
+0

你的搜索是通過一個keyup事件,它是不會,如果你編程設置現場發生觸發。考慮改用'change'事件。 – Madbreaks

回答

1

您的搜索只會 「」 如果initilizes的AJAX事件功能被觸發。因此,您需要觸發事件。我胡亂猜測的情況下,勢必之一:

- keyup 
- click 
- blur 

您還沒有發佈相關的代碼,但應該是足夠的一個答案......


你更新後

一個快速的解決方案是在開始搜索字段中keyup事件:

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

或者,你可以重新因子代碼:

function searchlogic() { ... }; 

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

searchlogic(); 
+0

其keyup,我包括在第一篇文章中的代碼 – Jim

+0

謝謝,它的工作! – Jim