2014-05-02 70 views
0

加載其他頁面我在哪裏搜尋字詞的用戶類型的一種形式:瓶和JQuery:如何用jQuery

<form class="navbar-form navbar-left" role="search"> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="search-val" placeholder="Search"> 
    </div> 
    <button type="submit" class="btn btn-default" id="search-btn">Submit</button> 
</form> 

我想獲得用戶輸入並調用certaing頁面。例如/index?search_term=foo

我曾嘗試使用jQuery的事情做起來,如:

$('#search-btn').on('click',function(){ 
    var search_term = $('#search-val').val(); 
    $.get("/?search_term="+search_term); 
}); 

在Python端,我嘗試訪問該參數是這樣的:

s = request.args.get('search_term', '') 

但它不是加工。該頁面只刷新並且Python不會收到search_term。 我是新來的燒瓶,請耐心等待。

回答

1

你忘記取消默認的動作,這是提交頁面:

$('#search-btn').on('click',function(){ 
    var search_term = $('#search-val').val(); 
    $.get("/?search_term="+search_term); 
    return false; 
}); 

沒有return false瀏覽器會很樂意也提交表單本身,在這種情況下,意味着它會使用GET與頁面的URL相同(沒有action屬性)。這反過來取消了任何未決的AJAX請求。

當然,你的$.get()調用在瀏覽器端仍然沒有做任何事情,但至少通過取消默認的表單動作,你會看到服務器端的效果。

+0

此外,他們將不得不修復'$ .get()',它不會像目前編寫的那樣做任何事情。 – jfriend00

+0

@ jfriend00:我認爲這是一個調試測試; OP沒有看到Flask一側發生的任何事情。 –