ASP.NET задает скрытое поле значение в Javascript - программирование
Подтвердить что ты не робот

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

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

JavaScript:

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

HTML:

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

error: "Невозможно получить значение свойства\'значение \: объект равно null или undefined"

4b9b3361

Ответ 1

До ASP.Net 4.0

ClientID

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

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

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

ASP.Net 4.0 +

Свойство ClientIDMode

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

Ответ 2

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

$('hdntxtbxTaksit').val('test');

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

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

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

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

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

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

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

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

Ответ 6

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

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

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

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

Ответ 7

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

.cs код файла:

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

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

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

Ответ 8

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

Ответ 9

asp:HiddenField как:

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

js code:

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

и код позади:

hfProduct.Value.ToString();