我有一个用户输入搜索字词的表单:
<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的新手,所以请耐心等待。
答案 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
通话在浏览器方面仍然无法执行任何操作,但至少通过取消默认表单操作,您可以看到服务器端效果。