我想请求帮助访问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字段的值时出错。有人能给我一个如何做到这一点的暗示吗?
如果在点击时更改字段中的值而不是打印它呢?
谢谢Jakub
您无法以您尝试的方式访问模板中的表单数据。如果您使用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。