【问题标题】:Flask: how to add button that dynamically adds rows to a form when pressedFlask:如何添加在按下时将行动态添加到表单的按钮
【发布时间】:2015-07-29 10:24:41
【问题描述】:

环顾四周后,我没有找到任何可以回答这个问题的东西。

我有一个简单的表单,最初包含 3 个用于字符串输入的字段,然后获取该输入并将其闪烁(以便我可以看到它)。

我想做的是,当用户单击按钮时,它会在现有按钮下添加类似的行(因此是第四个字符串输入)。

有没有办法用 python 和 flask-wtforms 做到这一点?

基本上,我想要类似谷歌地图的输入,您可以通过按“+”按钮添加第三、第四、第五等位置。

编辑:我意识到这可以使用 Javascript 来完成,但我想我的实际问题是如何从处理视图的 Python 文件中访问这些数据。

【问题讨论】:

  • 这更像是一个 javascript 问题,而不是一个烧瓶问题。您正在更新前端的 dom。

标签: jquery python flask wtforms flask-wtforms


【解决方案1】:

我最近在 Flask 之外做了这个。我用jquery做到了这一点。下面的代码将一个新的输入附加到一个 id 为 #example 的 div 的底部。

$("#addNewInput").click(function(){
  var newInput = $(document.createElement('input'))
   .attr("id", 'newInput');
  $("#example").append(newInput);
});

这通过给一个按钮一个#addNewInput的ID来工作,例如:

<button type="button" id="addNewInput">Add Input</button>

【讨论】:

  • 我尝试过这样的事情,但是如何访问我的 Python 文件中的输入数据来处理数据?现在,我的 views.py 文件启动了一个自定义 Form 对象并将其交给 html 模板(使用 render_template())。当按下提交按钮时,我检查 Form 对象上的 validate_on_submit(),然后使用表单数据。但由于添加新输入不会向 Form() 对象添加新属性,因此我无法访问该数据。
  • 应该能够检索到如下值:request.args.get('age')
猜你喜欢
  • 2018-09-05
  • 2012-01-26
  • 1970-01-01
  • 2010-11-23
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多