- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从数据库表中填充的 SelectField。我将选择加载到表单中,如下所示:
@statuses.route('/new', methods=['GET', 'POST'])
@login_required
def new_status():
form = StatusForm()
form.status_cd.choices = [(a.id, a.status_cd) for a in \
Status_Code.query.order_by('status_cd')]
if form.validate_on_submit():
status = Status(author=current_user)
form.to_model(status)
db.session.add(status)
db.session.commit()
flash('The status was added successfully.')
return redirect(url_for('.index'))
return render_template('statuses/new_status.html', form=form)
查询中引用的模型如下:
class Status_Code(db.Model):
__tablename__ = 'status_cd'
id = db.Column(db.Integer, primary_key=True)
status_cd = db.Column(db.String(16), nullable=False)
status_detail = db.Column(db.Text)
is_option_active = db.Boolean()
date_created = db.Column(db.DateTime, default=db.func.now())
窗体类如下:
class StatusForm(Form):
datetime = DateTimeField('Date / Time')
name = StringField('Name', validators=[Required()])
status_cd = SelectField('Status Code', coerce=int)
status_detail = TextAreaField('Status Detail', default="Default text",\
validators=[Required()])
submit = SubmitField('Submit')
问题
根据在 SelectField 中选择的选项,我希望它动态设置 status_detail TextAreaField 的默认文本。 SelectField 的值应该查询数据库并返回 status_detail,它应该是默认文本。
例如,如果我有:
id status_cd status_detail
1 Apple The apples are red.
2 Banana The bananas are yellow.
如果用户选择“Apple”选项,则默认文本应为“The apples are red”。
如有任何帮助,我们将不胜感激!我正在构建我的第一个 Flask 应用程序,所以我是新手。
最佳答案
根据我使用 Flask 的经验,您可以通过多种方式完成此操作。没有正确的方法,一切都取决于你:
您可以加载 status_detail 数据,并将其放在您选择的选项值中的数据详细信息标签中:
<select name='status_cd' onchange="get_status(this);">
{% for s in status %}
<option value='{{ s.id }}' data-detail='{{ s.status_detail }}'>{{ s.status_cd }} </option>
{% endfor %}
</select>
然后您可以使用 JavaScript 执行 onchange,然后它可以获取数据详细信息值并更新您的文本框(这是伪代码,不适合复制和粘贴):
<script>
function onchange(o){
var value = $(o).attr('data-detail');
//do something with the value
}
</script>
或
如果您不想在代码中放置数据详细信息标签,您可以在动态从数据库中提取数据的地方执行此操作,如下所示:
与 JavaScript 相同的 onchange,但随后可以调用 Ajax 调用路由方法以返回值(这是伪代码,不适用于复制和粘贴):
<script>
function onchange(o){
var value = $(o).value();
$.ajax({
url: '/my_rout',
data: value,
success : function(data){
//handle your result here
}
})
}
</script>
我希望这至少能让您在正确的方向上有一些不同的选择。
关于flask - 使用 WTForms 在 TextAreaField 中动态填充默认值的 SelectField 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488861/
我在面板上添加了一个文本区域,默认情况下它的背景是白色。但我想隐藏白色并赋予它浅蓝色,以便它与面板相匹配。正如您在图像上看到的那样,textareafield 的顶部(第一行)保持白色。有谁知道为什么
如何阻止 sencha textareafield 的可调整大小的属性? 我尝试使用 css as .textareaclass { resize: 'none' } 并将 textareacla
我想更改 Sencha Touch2 中 Textareafield 中拼写错误单词的字体颜色。我有一系列拼写错误的单词。这是文本区域。 { xt
我有一个从数据库表中填充的 SelectField。我将选择加载到表单中,如下所示: @statuses.route('/new', methods=['GET', 'POST']) @login_r
在 silverstripe 中,我需要在 TextareaField 中使用标签 - 目前它会离开该字段,但我希望它在那里写一个标签。 更新根据下面的评论,我添加了这段代码...... _confi
我正在用 sencha touch 2.0 开发一个应用程序。我需要知道如何在屏幕之间保持复选框的状态,以及当我返回屏幕并返回时如何在 textareafield 中保持文本的值再次出现在 texta
我是一名优秀的程序员,十分优秀!