it-roy-ru.com

ASP.NET установить скрытое поле значение в Javascript

Я не знаю, как установить значение hiddenField в Javascript. Может кто-нибудь показать мне, как это сделать?

Javascript:

document.getElementById('hdntxtbxTaksit').value = "";

HTML:

<asp:HiddenField ID="hdntxtbxTaksit" runat="server" Value="" Visible="false">   </asp:HiddenField>

ошибка: «Невозможно получить значение свойства\'value \': объект нулевой или неопределенный

18
ozkank

До ASP.Net 4.0

ID клиента

Получить идентификатор клиента, сгенерированный на странице, которая использует главную страницу. Поскольку главная страница имеет тип UserControl, она будет иметь собственный идентификатор, обрабатывать страницу как дочерний элемент управления и генерировать другой идентификатор с префиксом, например ctrl_.

Это может быть решено с помощью <%= ControlName.ClientID %> на странице и может быть присвоено любой строке или переменным javascript, к которым можно будет обратиться позже.

var myHidden=document.getElementById('<%= hdntxtbxTaksit.ClientID %>');
  • Если вы используете главную страницу, идентификатор управления сервером Asp.net будет отличаться. 

ASP.Net 4.0 +

Свойство ClientIDMode

Используйте это свойство, чтобы контролировать, как вы хотите сгенерировать идентификатор для вас. Для вашего случая настройка ClientIDMode = "static" на уровне страницы решит проблему. То же самое можно применить и на уровне контроля.

29
Murali Murugesan

asp:HiddenField как:

<asp:HiddenField runat="server" ID="hfProduct" ClientIDMode="Static" />

jS код:

$("#hfProduct").val("test")

и код позади:

hfProduct.Value.ToString();
4
ehsan rezaee

попробуйте этот код: 

$('hdntxtbxTaksit').val('test');
3
Black sheep
  • Сначала нужно правильно создать скрытое поле

    <asp:HiddenField ID="hdntxtbxTaksit" runat="server"></asp:HiddenField>

  • Затем вам нужно установить значение для скрытого поля

    Если вы не используете Jquery вы должны использовать его:

    document.getElementById("<%= hdntxtbxTaksit.ClientID %>").value = "test";

    Если вы используете Jquery , это должно быть так:

    $("#<%= hdntxtbxTaksit.ClientID %>").val("test");

2
Gabriel Brito

Насколько я понимаю, если вы установите controls.Visible = false во время начальной загрузки страницы, он не будет отображаться в ответе клиента. Мое предложение решить вашу проблему

Не используйте местозаполнитель. Судя по сценарию, вам не нужен местозаполнитель, если только вам не нужно динамически добавлять элементы управления на стороне сервера. Используйте div без runat=server. Вы всегда можете контролировать видимость этого div, используя css . Если вам нужно добавить элементы управления динамически позже, используйте заполнитель, но не устанавливайте visible = false. Заполнитель в любом случае не будет отображаться. Установите видимость этого заполнителя с помощью css. Вот как это сделать программно:

placeholderId.Attributes["style"] = "display:none";

В любом случае, как уже говорили другие, ваши проблемы возникают из-за того, что после установки control.visible = false он не отображается в ответе клиента.

1
SaiKiran Mandhala
document.getElementById('<%=hdntxtbxTaksit.ClientID%>').value

Идентификатор, который вы устанавливаете на сервере, является идентификатором сервера, который отличается от идентификатора клиента.

1
Amiram Korach

Попробуйте установить значение Javascript, как в document.getElementByName('hdntxtbxTaksit').value = '0';

0
Jason Cole

Я подозреваю, что вам нужно использовать ClientID вместо буквальной строки идентификатора в вашем коде JavaScript, поскольку вы пометили поле как runat="server".

Например, если ваш код JavaScript находится в файле aspx (а не в отдельном файле JavaScript):

var val = document.getElementById('<%=hdntxtbxTaksit.ClientID%>').value;

Если он находится в отдельном файле JavaScript, который не отображается компонентом ASP.Net, вам придется искать его другим способом, например, по классу.

0
T.J. Crowder

Я предложу вам использовать ClientID HiddenField. сначала зарегистрируйте его идентификатор клиента в любой переменной Javascript из codebehind, затем используйте его в сценарии на стороне клиента как:

Код файла .cs:

ClientScript.RegisterStartupScript(this.GetType(), "clientids", "var hdntxtbxTaksit=" + hdntxtbxTaksit.ClientID, true);

и затем используйте следующий код в JS:

document.getElementById(hdntxtbxTaksit).value= ""; 
0
Sanjeev Rai