如何使用JQuery ajax获取FlaskForm数据

时间:2017-06-09 01:06:47

标签: jquery html ajax forms flask

我正在尝试使用烧瓶表单中的字段数据发送jquery ajax请求。我现在可以得到这样的东西......将表单数据作为ajax请求发送到我在后台运行的python代码。

HTML

<form id=test_form name="form_name">
  <input type="text" name="form_text">
  <input type="submit" value="Submit">
</form>

的javascript

$(function() {
  $('form#test_form').bind('submit', function() {
    $.getJSON('/_ard_connect', {
      var1: $('input[name="form_text"]').val()
    }, function(data) {
      $("#some_result").text(data.result);
    });
    return false;
  });
});

@app.route('/_test_link')
def test_link():
    var1 = request.args.get('var1')
    answer = doSomething(var1)
    return jsonify( result=answer )

如果我像这样定义一个FlaskForm:

class MyForm(FlaskForm):
    test_form = StringField(label='tt')

myform = MyForm()

是否可以将var1: $('{{ myform.test_form.data }} ').val()之类的内容传递给我的getJSON函数。

替代(?)

我也厌倦了抽象我的ajax javascript并将表单数据作为参数传递

<form id=test_form action="javascript: somefunc('{{ ardu.port.data }}')">

但它只会获得默认值...

1 个答案:

答案 0 :(得分:0)

案例1:

您无法在javascript文件中执行此操作。相反,您可以在视图渲染模板文件(html)

中执行此操作

<强> file.html

var1: $('{{ myform.test_form.data }} ').val()

案例2:

我认为你正在根据一些javascript函数更新动作网址,但这也是错误的。此somefunc无法在onload中执行。而是尝试window.onload方法并执行somefunc更新test_form网址