如何使用JQuery访问WTForm

问题描述 投票:0回答:1

我想请求帮助访问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

python jquery flask flask-wtforms
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.