未使用Flask填充jQuery自动完成菜单

时间:2018-10-18 11:35:02

标签: jquery flask jquery-ui-autocomplete

我已经在这上面翻了几天了,真的希望有人能帮忙。

我有一个简单的Bootstrap Web表单,该表单接受Freetype文本并将条目添加到MySQL数据库表中。为了帮助用户避免同一内容的拼写错误或重复用语,我想实现jQuery autocomplete plugin来建议数据库表已具有的条目。

使用app.logger.debug()console.log(),我可以看到数据库调用成功,并且在前端的数组["item1", "item2", ..]中获得了现有的数据库条目。

问题是,在键入时,表单字段仅显示自动完成菜单的几个像素,而没有内容。

我正在使用Bootstrap stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css 和jQuery / jQuery UI code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.csscode.jquery.com/jquery-3.3.1.min.jscode.jquery.com/ui/1.12.1/jquery-ui.min.js

JS:

$(":text").focus( function() {
    var input_field = encodeURIComponent($( this ).attr('id'))
    var dataString  = 'input_field=' + input_field

    $.getJSON('/availability_autosuggest'
        , dataString
        , function (data) {
            console.log(input_field)
            console.log(data)
            $('#' + input_field).autocomplete({
                                        minLength: 2
                                        , source: data});
        }
    )

烧瓶:

from flask import Flask, render_template, request, jsonify
from flask_bootstrap import Bootstrap

@app.route('/availability_autosuggest', methods=['GET', 'POST'])
def availability_autosuggest():
    db_entries = []
    input_field     = request.args.get('input_field')
    # returns list of table entries ["item1", "item2", ..]
    db_entries.append(DBOperations().query_table('table_name', column_name=input_field))

    return jsonify(db_entries)

我想念什么?!

以下帖子似乎相关,但建议并未解决我的问题:

0 个答案:

没有答案