使用 jQuery 获取 asp:HiddenField 的值

发布于 2024-12-27 09:51:44 字数 460 浏览 0 评论 0 原文

我有两页。从第一页开始,我打开一个带有查询字符串的模式,该查询字符串保存客户端名称的值。然后我用它在打开的模式上设置隐藏字段。

我需要新模式上的文本框来显示从第一个屏幕发送的值。

我尝试使用以下方法获取值:

var hv = $('hidClientField').val();`

但这似乎不起作用。

这是我的隐藏字段:

<asp:HiddenField ID="hidClientName" runat="server" />`

我将其设置在 Page_Load 后面的代码中,如下所示:

hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`

任何想法将不胜感激。

I have two pages. From the first page, I open a modal with a querystring that holds that value of a client name. I then use this to set a hiddenfield on the modal that opened.

I need a TextBox on the new modal to display the value that has been sent through from the first screen.

I've tried getting the value using:

var hv = $('hidClientField').val();`

But this doesn't seem to work.

This is my hidden field:

<asp:HiddenField ID="hidClientName" runat="server" />`

I set it in the code behind on the Page_Load like this:

hidClientName.Value = Request.QueryString["Client_Name"] ?? "";`

Any ideas will be much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

烟酉 2025-01-03 09:51:44

尝试以下任意操作

  1. 如果 ASP.Net 控件和 javascript 都在同一页面上,则使用

    var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
    
  2. 如果您想从某个 JS 文件访问该控件,则

    // 'id
    
  3. 你可以使用类名选择器来实现同样的目的。查看这个类似的问题。

在 asp.net 中,控件 id 被破坏。因此,您的代码无法正常工作。

希望这对你有用。

将导致 jQuery 搜索 ID 以 'hidClientField' 结尾的控件 var hv = $('input[id$=hidClientField]').val();
  • 你可以使用类名选择器来实现同样的目的。查看这个类似的问题。

  • 在 asp.net 中,控件 id 被破坏。因此,您的代码无法正常工作。

    希望这对你有用。

    Try any of the following

    1. If ASP.Net control and javascript both are on same page, then use

      var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
      
    2. If you want to access the control from some JS file, then

      // 'id
      
    3. You can use class name selector to achieve same. Check out this similar question.

    In asp.net, controls id is mangled. Because of this your code is not working.

    Hope this works for you.

    will cause jQuery to search control whose ID ends with 'hidClientField' var hv = $('input[id$=hidClientField]').val();
  • You can use class name selector to achieve same. Check out this similar question.

  • In asp.net, controls id is mangled. Because of this your code is not working.

    Hope this works for you.

    怂人 2025-01-03 09:51:44

    您忘记了选择器中的 # 以通过 ID 进行选择:

    var hv = $('#hidClientField').val();
    

    尽管 ASP.NET 会根据命名容器生成 ID,因此您最终可能会得到像 ctl1$hidClientField 这样的 ID。然后,您可以使用“属性结尾为”选择器:

    var hv = $('input[id$=hidClientField]').val();
    

    查看有关 jQuery 选择器 的文档

    You forgot the # in your selector to select by ID:

    var hv = $('#hidClientField').val();
    

    Although asp.net generates ID based on the naming containers so you might end up with an ID like ctl1$hidClientField. You can then use the "attribute ends with" selector:

    var hv = $('input[id$=hidClientField]').val();
    

    Check the documentation about jQuery selectors

    失去的东西太少 2025-01-03 09:51:44

    使用 ID 选择器。

    var hv = $('#hidClientName').val();
    

    或者

    var hv = $('#<%=hidClientName.ClientID%>').val();
    

    Use ID selector.

    var hv = $('#hidClientName').val();
    

    Or

    var hv = $('#<%=hidClientName.ClientID%>').val();
    
    从﹋此江山别 2025-01-03 09:51:44

    因为 jQuery 对 asp:HiddenField 一无所知。它会在 HTML 结构中查找 。因此没有 ID= HiddenFieldServerDateTime 的输入。有几种方法可以克服这个问题:

    • 使用 css 选择器:

      
      

      使用以下选择器:var serverDateTime = $(".SomeStyle").val();

      CssClass 不是 HiddenField 类(并且它没有 属性 集合,因此您无法手动添加)。

    • 使用ClientID属性:

      var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
      
    • 将隐藏字段包含在您可以选择的内容中:

      ;

       

      var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
      

    Because jQuery knows nothing about asp:HiddenField. It looks in the HTML structure where you have <input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" .... So there's no input with ID= HiddenFieldServerDateTime. There are a few ways to overcome this:

    • Use a css selector:

      <asp:HiddenField ID="HiddenFieldServerDateTime" 
                       runat="server" 
                       CssClass="SomeStyle" />
      

      with the following selector: var serverDateTime = $(".SomeStyle").val();

      CssClass is not an available class on the HiddenField class (and it doesn't have an Attributes collection, so you can't add it manually).

    • Use ClientID property:

      var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
      
    • Wrap the hidden field in something you can select:

      <div class="date-time-wrap">
        <asp:HiddenField ID="..." runat="server" />
      </div>
      

       

      var serverDateTime = $('.date-time-wrap input[type=hidden]').val();
      
    海未深 2025-01-03 09:51:44

    如果您使用 Asp.net 控件,服务器将破坏控件 ID。它在 id 中添加了一堆无关的控制树层次结构信息。您需要引用正在呈现的实际 id 是什么,这可以通过控件上的 ClientID 属性 (hfUser.ClientID) 获得,或者以不同的、更迂回的方式访问您的控件,例如找到控件的父级,然后搜索其父级。孩子们找到你的控制权。

    如果您不必使用 asp.net HiddenField 控件,请尝试仅使用常规的旧 html 输入。

    If you are using Asp.net controls, the server will mangle the control ids. It adds a bunch of extraneous control tree hierarchy information into the id. You need to reference what that acutal id is that's getting rendered, which is availble with the ClientID property on the control (hfUser.ClientID) or access your control in a different, more roundabout way, like find the controls parent, then search through its children to find your control.

    If you don't have to use the asp.net HiddenField control, try just using a regular old html input.

    苦笑流年记忆 2025-01-03 09:51:44

    你可以这样做

    var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
    

    you can do in this way

    var hval = $('#<%= hdMarkupPercentage.ClientID%>').val();
    
    那支青花 2025-01-03 09:51:44

    请尝试这段代码。

     var hv = $("#<%= hidClientField.ClientID %>").val();
    

    Please try this code.

     var hv = $("#<%= hidClientField.ClientID %>").val();
    
    吃不饱 2025-01-03 09:51:44

    在代码中包含 ClientIDMode="Static"。

    var obj = $('#hidClientName').val();

    var obj = $('#<%=hidClientName.ClientID%>') .val();

    Include ClientIDMode="Static" in your code.

    var obj = $('#hidClientName').val();
    <asp:HiddenField ID="hidClientName" ClientIDMode="Static" runat="server" />

    Or

    var obj = $('#<%=hidClientName.ClientID%>').val();
    <asp:HiddenField ID="hidClientName" runat="server" />

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文