【发布时间】:2019-10-21 01:35:22
【问题描述】:
我正在尝试在我的烧瓶应用上使用自定义搜索栏。我没有设法将它与表单(或flask-wtform)相关联并保留它的动画。因此我选择实现 ajax,我也很想看到使用烧瓶。 我的问题是,无论我做什么,按钮都完全没有任何作用!
HTML
{% block header %}
<div class="py-5 bg-image-full bgpic1">
<img class="logotipo img-fluid d-block mx-auto" src="/static/img/cerveweb_inverted.png">
<div class="searchBox">
<input id="txtBusqueda" class="searchInput" type="text" placeholder="Buscar">
<button id="btnBusqueda" class="searchButton">
<i class="fas fa-search"></i>
</button>
</div>
</div>
{% endblock %}
JavaScript
<script type="text/JavaScript">
function buscar(){
alert("2");
var texto = $("#txtBusqueda").val();
$.ajax({
url: "{{url_for('buscar')}}",
type: 'POST',
data: {'data':texto},
contentType: 'application/json;charset=UTF-8'
});
};
$("#btnBusqueda").click(function(){
console.log("1");
buscar();
});
</script>
烧瓶
@main.route('/buscar', methods=['GET', 'POST'])
def buscar():
# Viene de un AJAX
if request.method == "POST":
texto = request.json['data']
flash("Has buscado: {}".format(texto), "info")
return render_template('index.html')
【问题讨论】:
-
您好,首先我会提议修复您的路线,将
@main.route('/buscar/', methods=['GET', 'POST'])更改为@main.route('/buscar', methods=['GET', 'POST']),因为 url 规则后不应有反斜杠。 -
@simkus 改变了它没有效果。但是,我决定将脚本包含在 jinja2 标记中,这样就可以正常工作。 (检查编辑)我有点困惑呵呵
-
也许你正在使用flask-bootstrap库?因为这是这个库与烧瓶 jinja2 变量一起工作的方式,正如我在他们的文档中所理解的那样 pythonhosted.org/Flask-Bootstrap/…
标签: javascript ajax python-3.x forms flask