我想寻求有关访问WTForm字段的帮助:
我有以下表格:
class model_bolt_InputForm(FlaskForm):
# Bolt Inputs
bolt_size = SelectField('Bolt size [mm]', choices=[('M6', 'M6'),('M8', 'M8'),('M10', 'M10'), ('M12', 'M12'), ('M16', 'M16'), ('M20', 'M20'), ('M24', 'M24'), ('M30', 'M30'), ('M36', 'M36'), ('M42', 'M42'), ('M48', 'M48'), ('M56', 'M56'), ('M64', 'M64')], default='M12')
bolt_grade = SelectField('Bolt grade [-]', choices=[('4.6','4.6'), ('4.8','4.8'), ('5.6','5.6'), ('5.8','5.8'), ('6.8','6.8'), ('8.8','8.8'), ('9.8','9.8'), ('10.9','10.9'), ('12.9','12.9')], default='8.8')
bolt_preload = FloatField( label=' Bolt preload [N]', default=32360)
friction_coefficient = FloatField( label=' Thread friction coefficient [-]', default=0.2)
preload_type = RadioField( label='Select preload type', choices=[(1,'Apply torque'),(2,'Apply Axial preload'),(3,'Ratio of total Tensile Strength')], default=2)
我的html:
<button id="btn1">Button 1</button>
<p class="para1">sdiuc siduch siudch siudch siudhc siudch siduch </p>
<script>
$(document).ready(function(){
$('#btn1').click(function(){
$('.para1').toggle();
alert(**form.bolt_preload.data**);
});
});
</script>
如果我单击按钮,该段落将隐藏,但是尝试打印bolt_preload字段的值时出现错误。有人可以给我提示如何做吗?
在单击时更改“归档”中的值而不是打印该值吗?
谢谢 雅各布
答案 0 :(得分:0)
您无法以尝试的方式访问模板中的表单数据。如果您正在使用javascript从表单获取数据,那么。如果您没有为表单元素指定ID,则WTForm将使用变量名称作为id属性以及HTML输入的name属性来呈现它们。您可以使用它来使用javascript / jquery通过id选择该输入 您的jquery代码应如下所示。
<script>
$(document).ready(function(){
$('#btn1').click(function(){
$('.para1').toggle();
var boltPreloadInput = $('#bolt_preload');
alert(boldPreloadInput.val());
});
});
</script>
使用WTForms时,表单元素在页面加载时呈现为HTML输入。加载页面后,您将无法像尝试那样访问客户端的表单数据。在未首先将数据发送到服务器的情况下,与点击事件上的表单进行交互的唯一方法是使用javascript。