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"
Ответы
Ответ 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();