Javascript 是否有可能使用Flask提交表单Ajax?

Javascript 是否有可能使用Flask提交表单Ajax?,javascript,python,flask,leaflet,Javascript,Python,Flask,Leaflet,我有一个使用Flask和JavaScript的应用程序。当用户单击按钮并将数据发送到Flask时,我有一个JavaScript函数。此函数在地图上创建一个标记,并将数据从Flask中的函数设置为marker popup。我在弹出窗口中使用表单,因为我想从弹出窗口中获取名称。我想从弹出窗口提交此表单并获取名称,但当我执行此操作时,打印(“名称:”,nazwa_事件)将不返回任何内容。我用html创建了一个带有隐藏标记的输入,并将输入值设置为表单$('input[id=nameOF]').val(n

我有一个使用Flask和JavaScript的应用程序。当用户单击按钮并将数据发送到Flask时,我有一个JavaScript函数。此函数在地图上创建一个标记,并将数据从Flask中的函数设置为marker popup。我在弹出窗口中使用
表单
,因为我想从弹出窗口中获取名称。我想从弹出窗口提交此表单并获取名称,但当我执行此操作时,
打印(“名称:”,nazwa_事件)
将不返回任何内容。我用html创建了一个带有隐藏标记的输入,并将输入值设置为表单
$('input[id=nameOF]').val(nazwa.value)中的名称。可以这样做,否则我无法从
Ajax
提交表单

HTML代码:

<input type="text" id="name_of_event"  class="form-control mb-2" name="name_event" placeholder="Nazwa wydarzenia">
                    <input name="nameOfEvent" type="hidden" value="" id="nameOF">
                    <br>
                    <button id="search-button_event" type='submit' name="event_form" class="btn btn-primary">Szukaj</button>

我无法测试它,但对我来说,您将
隐藏在错误的位置-它必须在
表单中
弹出窗口中
。您可以直接在HTML中设置值,而无需使用
jQuery

marker_event._popup.setContent(
    '<form method="POST" action="/mapaa"' +
    
    '<input name="nameOfEvent" type="hidden" value="' + nazwa.value + '" id="nameOF">' + 
                
    '<p>Nazwa: ' + nazwa + '</p>' +
    '<button type="submit" id="form-submit" name="form-submit"  class="btn btn-warning btn-block">Dołącz do wydarzenia</button>' +
    '</form>'
)
marker\u事件。\u popup.setContent(

“不,你不能用AJAX提交表单,而是发送表单包含的数据。那么我如何用其他方式来做呢?有什么方法可以做到吗?也许可以先检查一下表单中的内容-例如,
print(request.form)
print(request.form.keys())
返回
request.form
me
ImmutableMultiDict([('form-submit','')
request.form.keys()
返回我
哦,是的,你是对的,我更改了,但现在它返回我
未定义的
不知道为什么。也许它应该是
nazwa
而不是
nazwa.value
@app.route('/mapaa',methods=['GET','POST'])
def mapa():
    user_id = current_user.get_id()
    slownik = {}

    if request.method == "POST":

        if request.is_json:
            req = request.get_json()
            nazwa = req['name']
            data_pocz = req['data_start']
            data_kon = req['data_end']
            typ = req['type']
            dlugosc = req['len_route']
            coord = req['coordinates']
            event_database = Event(date_start=data_pocz, date_end=data_kon, type=typ, name=nazwa, len_route=dlugosc,admin=user_id, route=coord)
            db.session.add(event_database)
            db.session.commit()
            print('Dodano wydarzenie')




        if 'form-submit' in request.form:
            nazwa_event = request.form.get('nameOfEvent')
            print("Id ev:",nazwa_event)
            


        else:
            name_ev = request.form.get('nameevent')
            all_data = Event.query.filter_by(name=name_ev).all()
            for row in all_data:
                date_st_string = str(row.date_start)
                date_end_string = str(row.date_end)
                slownik = {'id':row.id,'date_st':date_st_string,'date_end':date_end_string,'type':row.type,'name':row.name,'len_route':row.len_route,'route':row.route}
            return jsonify(slownik)
    return render_template('mapaa.html', title='Mapa')
marker_event._popup.setContent(
    '<form method="POST" action="/mapaa"' +
    
    '<input name="nameOfEvent" type="hidden" value="' + nazwa.value + '" id="nameOF">' + 
                
    '<p>Nazwa: ' + nazwa + '</p>' +
    '<button type="submit" id="form-submit" name="form-submit"  class="btn btn-warning btn-block">Dołącz do wydarzenia</button>' +
    '</form>'
)