请教各位高手,
如何通过完成前端其中的一个表单,回车搜索后根据sqlalchemy的返回,自动完成其余的表单?哪里有代码可以借鉴下,不胜感激!
先说一下,可以使用 html5 的 datalist 来完成。
如果你数据不多可以在后台通过模板渲染出 datalist,如果数据量比较大通过 ajax 来刷新 datalist.
模板写法大概如下
<div>
<div>
<input type="text" list="test_list">
</div>
<datalist id="test_list">
{% for t in test_list%}
<option value="{{ t }}">
{% endfor%}
</datalist>
</div>
我用的 flask
比如一个 form 是这样
class NoteForm(Form):
c_title = StringField(u'标题')
c_note2 = StringField(u'备注')
模板 example.html 是这样
<html>
<body>
<form method = 'post' action = ''>
{{ my_form.c_title.label }} {{ my_form.c_title() }}
{{ my_form.c_note.label }} {{ my_form.c_note2() }}
<input type='submit' value='提交'/>
</form>
</body>
</html>
views 里是这样
@app.route('/get_note',methods=['post','get']
def get_note():
my_form = NoteForm()
# 查找 note 的 id 为「1001」的 note 内容
# T_note 表里包含 c_title 和 c_name
result= T_note.query.filter(T_note.id == '1001').first()
# 下面这两部的赋值就是要实现你的目的的地方,把查询的值在后台赋给表单
my_form.c_title = result.c_title
my_form.c_name = result.c_name
# 然后就是把 my_form 传到模板中去
return render_template('example.html',my_form = my_form)
用javaScript DOM编程来实现. 监听第一个表单的回车事件, 发送ajax请求到Flask, Flask返回数据, 再用javaScript填充其他表单