Подтвердить что ты не робот

Получить значение asp: HiddenField с помощью jQuery

У меня две страницы. На первой странице я открываю модальную версию с помощью запроса, содержащего это значение имени клиента. Затем я использую это, чтобы установить скрытое поле на открывшемся модале.

Мне нужен TextBox для нового модального отображения, чтобы отобразить значение, которое было отправлено с первого экрана.

Я попытался получить значение, используя:

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

Но это не работает.

Это мое скрытое поле:

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

Я установил его в код позади на странице_Load следующим образом:

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

Любые идеи будут высоко оценены.

4b9b3361

Ответ 1

Попробуйте выполнить любое из следующих

  • Если ASP.Net-контроль и javascript находятся на одной странице, используйте

    var hv = $("#"+ '<%= hidClientField.ClientID %>').val();
    
  • Если вы хотите получить доступ к элементу управления из некоторого JS файла, то

    // 'id$' will cause jQuery to search control whose ID ends with 'hidClientField'
    var hv = $('input[id$=hidClientField]').val();
    
  • Вы можете использовать селектор имен классов для достижения того же. Проверьте этот аналогичный вопрос.

В asp.net управляющий идентификатор искажен. Из-за этого ваш код не работает.

Надеюсь, это сработает для вас.

Ответ 2

Вы забыли # в своем селекторе выбрать по ID:

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

Хотя asp.net генерирует идентификатор на основе контейнеров с именами, поэтому вы можете получить идентификатор, например ctl1$hidClientField. Затем вы можете использовать "атрибут заканчивается с" селектором:

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

Проверьте документацию о селекторах jQuery

Ответ 3

Использовать селектор идентификаторов.

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

или

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

Ответ 4

Потому что jQuery ничего не знает о asp:HiddenField. Он выглядит в структуре HTML, где у вас есть <input type="hidden" name="ctl00$cph_main$HiddenFieldServerDateTime" id="ctl00_cph_main_HiddenFieldServerDateTime" .... Таким образом, нет ввода с ID= HiddenFieldServerDateTime. Есть несколько способов преодолеть это:

  • Используйте селектор css:

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

    со следующим селектором: var serverDateTime = $(".SomeStyle").val();

    CssClass не является доступным классом класса HiddenField (и он не имеет Attributes, поэтому вы не можете добавить его вручную).

  • Используйте свойство ClientID:

    var serverDateTime = $("#<%= HiddenFieldServerDateTime.ClientID %>").val();
    
  • Оберните скрытое поле в том, что вы можете выбрать:

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

     

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

Ответ 5

Если вы используете элементы управления Asp.net, сервер будет блокировать идентификаторы элементов управления. Он добавляет кучу информации иерархической иерархии управления в идентификатор. Вам нужно указать, что этот acutal id - это получение рендеринга, доступное с свойством ClientID в элементе управления (hfUser.ClientID) или доступ к вашему элементу управления другим, более обходным путем, например, поиск родительского элемента управления, а затем поиск его детей, чтобы найти свой контроль.

Если вам не нужно использовать элемент управления asp.net HiddenField, попробуйте использовать обычный старый html-ввод.

Ответ 6

вы можете сделать таким образом

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

Ответ 7

Пожалуйста, попробуйте этот код.

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