单击时获取动态生成的属性值

本文关键字:属性 获取 动态 单击 | 更新日期: 2023-09-27 18:37:19

我在表单中有一个隐藏字段,我在标记中设置了默认值:

<input id="hiddenField" type="hidden" runat="server" value="0" />

我通过客户端JS函数动态设置字段的值...这有效,我的字段最终看起来像:

<input id="hiddenField" type="hidden" runat="server" value="7" />

我试图做的是在单击此按钮时获取该值:

<asp:Button ID="Button" runat="server" OnClick="Button_Click" Text="Submit" CssClass="btn" />

然后从那里在我的代码中使用它来执行某些操作。

protected void Button_Click(object sender, EventArgs e)
    {
        string itemToCheck = hiddenField.Value;
        //do something with itemToCheck
    }

问题是返回的值为 0,这是默认值。 正如我所提到的,该值是通过客户端JS更改的,我确认该部分有效。 这样做的目的是创建一个变量,该变量可以在提交时用于检查值,甚至是简单的内容,例如:

if (itemToCheck >= 2){
    //do something
}

。所以我没有绑定到隐藏字段或与此相关的值属性......只是将其用作将值从一个点传递到另一个点的黑客方式。

此外,即使我能够使用 JS 来设置属性,解决方案也需要在 C# 中才能根据需要使用结果......除非有办法在 JS 中执行此操作并将结果传递给 C#。

单击时获取动态生成的属性值

您可以向页面添加普通 ASP.Net 文本框,然后在客户端加载页面时将其隐藏。 然后,您可以使用 JavaScript 和 jQuery 操作该值。

<script>
    $(document).ready(function () {
        $('input#<% =txtTest.ClientID %>').val(9);
        $('input#<% =txtTest.ClientID %>').hide();
    }) 
</script>

然后,您可以在服务器端读取文本框值:

    protected void Button1_Click(object sender, EventArgs e)
    {
        var x = txtTest.Text;
    }