在隐藏字段中存储标签值

时间:2017-10-11 16:14:02

标签: asp.net label hiddenfield

我有一个只读标签,一旦用户输入高度和重量值,它就会获得值。一切都工作得很好,但是一旦我尝试将标签值存储到数据库,它总是空的,我读到了在回发标签丢失它们的值之后。所以我读到了隐藏字段,但是我找不到如何将标签添加为隐藏字段值的正确语法,我在使用EVAL之前使用了隐藏字段,但只有在绑定数据时才有效。

帮助将不胜感激。

  <asp:Label ID="lblBMI" runat="server" ClientIDMode="Static" ReadOnly="true"></asp:Label>



                                <script type="text/javascript">
                                    $(document).ready(function () {

                                        CalculateBodyMassIndex();

                                        $('#txtHeight').change(function () {
                                            CalculateBodyMassIndex();
                                        });

                                        $('#txtWeight').change(function () {
                                            CalculateBodyMassIndex();
                                        });

                                        function CalculateBodyMassIndex() {
                                            var floatNumber= /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;
                                            var height = $('#txtHeight').val();
                                            var weight = $('#txtWeight').val();

                                            if (height != "" && weight != "") {
                                                if (floatNumber.test(height) && floatNumber.test(weight)) {
                                                    var bmi = weight / (height * height)
                                                    $('#lblBMI').text(bmi.toFixed(2));

                                                } else {

                                                    alert('Only numbers are allowed');
                                                }
                                            } else {
                                                $('#lblBMI').text("");
                                            }
                                        }
                                    });
                                </script>

1 个答案:

答案 0 :(得分:0)

Label值客户端所做的更改将不会发布到服务器,因此将始终为空。您需要将其存储在输入字段中。 下面的代码片段也会将BMI值设置为隐藏字段,并且可以在后面的代码中检索该值。

<asp:Label ID="lblBMI" runat="server"></asp:Label>
<asp:HiddenField ID="HiddenField1" runat="server" />

<script type="text/javascript">
    var bmi = 5.3;
    $('#<%= lblBMI.ClientID %>').text(bmi.toFixed(2));
    $('#<%= HiddenField1.ClientID %>').val(bmi.toFixed(2));
</script>