Flask和JQuery:如何使用JQuery加载另一个页面

时间:2014-05-02 16:29:35

标签: jquery python flask

我有一个用户输入搜索字词的表单:

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

我想获得该用户输入并调用一个证明页面。例如/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。 我是Flask的新手,所以请耐心等待。

1 个答案:

答案 0 :(得分:1)

您忘记取消默认操作,即提交页面:

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

如果没有return false,浏览器也会愉快地提交表单本身,在这种情况下意味着它会在与页面相同的URL上使用GET(没有{{1}属性)。这反过来也会取消任何挂起的AJAX请求。

当然,您的action通话在浏览器方面仍然无法执行任何操作,但至少通过取消默认表单操作,您可以看到服务器端效果。