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

0 投票
1 回答
612 浏览
提问于 2025-04-18 05:09

我有一个表单,用户可以在里面输入搜索词:

<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 个回答

1

你忘记取消默认的操作了,默认操作是提交页面:

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

如果不加上 return false,浏览器就会自动提交表单,这样的话就会用 GET 方法在和页面相同的地址上请求数据(因为没有设置 action 属性)。这也会导致任何正在进行的 AJAX 请求被取消。

当然,你的 $.get() 调用在浏览器上还是不会有任何效果,但至少通过取消默认的表单提交,你可以看到服务器端的效果。

撰写回答